-1
Javascript 개체 및 함수 작업. 그것에 직면 한 문제.잡히지 않은 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