繁体   English   中英

未捕获的TypeError:无法读取未定义的属性foo

[英]Uncaught TypeError: Cannot read property foo of undefined

我的JavaScript:

todo.completed = !todo.completed;

错误:

Uncaught TypeError: Cannot read property 'completed' of undefined
    at Object.toggleCompleted (script.js:34)
    at Object.toggleCompleted (script.js:89)
    at HTMLButtonElement.onclick ((index):33)
toggleCompleted @ script.js:34
toggleCompleted @ script.js:89
onclick @ (index):33

我在这里想念什么吗?

似乎您尚未声明变量todo。 尝试类似todo = {}; 如果您有任何问题,请告诉我!

变量todo已超出范围 可能是在调用handlers.toggleCompleted()闭包之外的函数中声明的。

有两种方法可以解决此问题,但最简单的方法就是将todo设为全局:

  1. 找到var todo并从头开始删除var
  2. 在您的JS顶部添加var todo = {};

这将使todo成为始终在页面上定义的全局对象。

令人困惑的是,由于这些站点的路由设置方式,因此代码可以在Plunkr,小故障或Codepen中运行,但不能在文本编辑器和浏览器中运行。 在index.html文件中,您需要将<script src = "filename.js></script>替换为<script src="entire path to filename.js"></script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM