首页 > 解决方案 > 如何修复未捕获的 JavaScript 引用错误?

问题描述

未捕获的 ReferenceError:displayTodos 未定义于:1:1

var todoList = {
  todos: [],
  displayTodos: function() {
    if (this.todos.length === 0) {
      console.log('You have nothing todo!');
    } else {
      console.log('My Todos:');
      for (var i = 0; i < this.todos.length; i++) {
        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();
  }
};

预期 displayTodos(); 显示待办事项列表,但收到上述错误。

标签: javascript

解决方案


问题是您的displayTodos()函数未在全局范围内定义,您需要改用它:

todoList.displayTodos();


推荐阅读