-1
Javascriptのオブジェクトと関数を操作します。それに直面する問題。Uncaught TypeError:未定義のプロパティ 'todoText'を設定できません
var todoList = {
todo:[],
displayTodo:function(){
console.log('My Todo:',this.todo);
},
addTodo:function(todoText){
this.todo.push({
todoText:todoText,
complete:false
});
this.displayTodo();
},
changeTodo:function(posi,newTodo){
//this.todo[posi] = newTodo;
this.todo[posi].todoText=newTodo;
this.displayTodo();
},
toggleComplte:function(posi){
var todo = this.todo[posi];
todo.complete = !todo.complete;
this.displayTodo();
}
}
todoList.addTodo('Item1');
todoList.toggleComplte(0);
エラー実行中にエラーが発生しました。
VM1196:16 Uncaught TypeError: Cannot set property 'todoText' of undefined
at Object.changeTodo (<anonymous>:16:29)
at <anonymous>:21:10
エラーとは何ですか?あなたの現在と
任意のコンソールエラーを見ていないですあなたの「this.todo [ポジ]」が未定義を返しているように見えますchangeTodo関数の値です。上記の例では、changeTodoという関数を呼び出していますので、さらに役立つ例が必要です。 –
おそらくtodosは存在しないので、 'this.todo [0]'が定義されていないので、todo#0にアクセスしているergoは失敗します(つまり、最後に効果的に 'undefined.todoText = ...'を実行すると、 )。デバッガを使用していれば、簡単にそれを見ることができます。このチュートリアルをご覧ください:https://developers.google.com/web/tools/chrome-devtools/javascript/ – CherryDT
@AidanGeeはいです。最初は、addTodo関数を使用して値を追加しました。ちょうど私がトグルする値があることを確認しています。私はプログラムの最後の行を編集しています。 – Rushit