- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 javascript 对象
var Bucket = function(id) {
this.id = id
this.items = []
}
Bucket.prototype.add_item = function(item) {
//some uniquness checking code here
this.items.push(item);
}
出于某种原因,当我实例化对象并尝试添加项目时,出现错误
var bct = new Bucket
bct.add_item(some_item)
“undefined”不是一个对象(正在评估“this.items.push”)
即使将项目添加到存储桶的数组中,也会发生此错误
console.log(bct.items)
>> [some_item]
我在 add_items 方法中使用了 console.log(this)
,我看到从同一行记录了两个条目
>Object myjavascript.js:28
>DOMWindow myjavascript.js:28
页面上还包含了一些其他的库
知道什么将此对象绑定(bind)到 Window 吗?
在页面的其他地方,我将 jquery ajax 调用与我的对象结合使用...它绑定(bind)了它...很抱歉没有发布所有相关代码...
最佳答案
您说“正在添加该项目”,但这无关紧要,因为根据您的日志记录,您对该方法进行了两次调用,其中一次是正确的。您需要关注不正确的。
确保您的浏览器中有调试器(例如打开了 Web Inspector 的 Chrome),然后像这样修改您的代码:
Bucket.prototype.add_item = function(item) {
if (this === window) debugger;
//some uniquness checking code here
this.items.push(item);
}
这将在发生错误调用时自动暂停您的代码。然后,查看调用堆栈以找出是什么在调用您的 add_item
函数而不是作为方法。
关于Javascript 对象莫名其妙地绑定(bind)到窗口和对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10283770/
echo "Language"; echo " Select... English(US) English(AU)
好吧,我真的不知道为什么会这样。我目前正在实现一个线程容器,它以分离的方式运行无限循环,限制在每次迭代之间的特定速度。 标题: class timeloop { public: std::th
我收到 System.InvalidOperationException: Collection was modified;枚举操作可能无法执行: ExceptionLoggingLibrary.Lo
我是一名优秀的程序员,十分优秀!