2016-04-22 16 views
0

Meine Variable 'todoList' wird als undefiniert angezeigt. Ich bin sehr neu in Javascript und Programmierung im Allgemeinen. jede Hilfe würde sehr geschätzt werden!javascript: Variable nicht definiert

var todoList = { 
 
    todos:[], 
 
    displayTodos: function() { 
 
    if (this.todos.length === 0) { 
 
     console.log ('Your todos list is empty!'); 
 
    } else { 
 
     console.log('My Todos:'); 
 
     for (var i = 0; i < this.todos.length; i++) { 
 
     if (this.todos[i].completed === true) { 
 
      console.log ('(x)', this.todos[i].todoText); 
 
     } else { 
 
      console.log('()', this.todos[i].todoText); 
 
     } 
 
     } 
 
    } 
 
    }, 
 
    addTodo: function(todoText) { 
 
    this.todos.push({ 
 
     todoText: todoText, 
 
     completed: false 
 
    }); 
 
    this.displayTodos(); 
 
    }, 
 
    changeTodo: function(position, todoText) { 
 
    this.todos[position].todoText = todoText; 
 
    this.displayTodos(); 
 
    }, 
 
    deleteTodo: function(position) { 
 
    this.todos.splice(position, 1); 
 
    this.displayTodos(); 
 
    }, 
 
    toggleCompleted: function(position) { 
 
    var todo = this.todos[position]; 
 
    todo.completed = !todo.completed; 
 
    this.displayTodos(); 
 
    }, 
 
    toggleAll: function() { 
 
    var totalTodos = this.todos.length; 
 
    var completedTodos = 0; 
 
    for (var i = 0; i < totalTodos; i++) { 
 
     if(this.todos[i].completed === true) { 
 
     completedTodos++; 
 
     } 
 
    } 
 
    if (completedTodos === totalTodos) { 
 
     for(var i =0; i < totalTodos; i++) { 
 
     this.todos[i].completed === false; 
 
     } 
 
    } 
 
    this.displayTodos; 
 
    } 
 
};

+0

Ihr Code für die Erklärung und die Zuweisung 'todoList' sieht gut aus. Sie müssen mehr Details darüber angeben, wo in Ihrem Code die Variable nicht definiert ist. – smaili

+0

versuchen Sie '&&! This.todos [i] .todoText' auf Ihrem' if (this.todos [i] .completed === true) ' –

+0

Vielleicht versuchen Sie, auf das todoList-Objekt aus einem höheren Bereich zuzugreifen, also ist die todoList nicht sichtbar, hiermit ist undefiniert. –

Antwort

0

JavaScript gibt immer etwas. Wenn ich Ihren Code in die Chrome-Konsole kopiere/einfüge und ihn ausführe, wird mir mitgeteilt, dass das Ergebnis der Ausführung des Codes undefined lautet. Das ist in Ordnung, da Sie nur das Objekt einrichten und nicht den Rückgabewert verwenden möchten.

enter image description here

Danach wurde das Objekt erstellt wurde und es in die Chrome-Konsole eingeben sagt uns, dass die Variable todoList ein Objekt ist.

enter image description here

+0

Danke! Das war sehr hilfreich! – justinsunghokim

+0

Ich bin froh, dass es hilfreich war, @justinsunghokim. Wenn Sie mit meiner Antwort zufrieden sind, können Sie das akzeptieren? –

Verwandte Themen