【发布时间】:2015-04-14 11:59:57
【问题描述】:
在以下对象中,我在使用“this”引用时遇到了问题:
function SampleObject(){
this.addObject = function(object){...}
...
// more code here
...
this.addNewObjects= function(arr){
arr.forEach( function (obj) {
this.addObject(new Obj(obj.prop1, obj.prop2));
});
}
}
我假设上下文正在发生变化,并且“this”指的是迭代的“obj”,而不是“SampleObject”。我已经使用普通的 for 循环解决了这个问题,但是我很想知道为什么这不起作用,并且想知道是否有其他方法可以做到这一点。
【问题讨论】:
-
你在哪里/如何打电话给
SampleObject()? -
@javinor 谢谢,这些文章很有帮助。函数创建作用域,因此 'this' 归 Window 对象所有,它是 'this' 的默认所有者。
-
这个问题根本不是“this”的所有者的副本。
标签: javascript function foreach this