【发布时间】:2011-09-07 01:05:19
【问题描述】:
在制作对象时,我假设this 会返回对象的实例——相反,它似乎是别的东西。这是为什么呢?
var Obj = {
foo : 'value',
bar : function() { return this.foo; } // Error
bar : function() { return Obj.foo; } // Works
}
更新:我一定遗漏了一些东西,因为在某些情况下,在对象内部使用 this 不起作用。为什么这有时只引用对象实例?
【问题讨论】:
-
您的代码产生语法错误...您不能在此处放置分号。
-
对不起大家,我在发布之前忘记验证示例。我不是在谈论实际的代码 sn-p - 那只是为了显示我要询问的代码。
-
一个函数的 this 值由函数的调用方式设置,而不是由它的声明或初始化方式设置(除了 ES5 bind i> 使用方法)。
-
再次,生成一个适合您的 sometimes 案例的代码示例......然后您可能会得到一个有意义的答案。
标签: javascript oop this