【发布时间】:2010-09-27 20:17:31
【问题描述】:
当一个函数被附加到一个对象并被调用时:
function f() { return this.x; }
var o = {x: 20};
o.func = f;
o.func(); //evaluates to 20
this 指的是作为方法调用函数的对象。相当于做f.call(o)。
当函数不是作为对象的一部分调用时,this 指的是全局对象。如何检查是否从非对象上下文调用函数?是否有任何标准关键字来访问全局对象?这样做的唯一方法是这样吗?
globalobj = this;
function f() { if (this == globalobj) doSomething(); }
注意:我这里没有特别的用例 - 我实际上是在询问这个确切的机制。
【问题讨论】:
标签: javascript object global