在我的一些Javascript对象中,我发现我的this
指针是正确的 - 这些是new Func()
-类型对象 - 创建时,但在指定的方法中它可能是错误的。Javascript` this` object ==`window`` in member function
function Confused() {
console.log("checking",this==window,"is always false");
this.method = function() {
console.log("checking",this==window,"is true for some funcs but not others");
};
};
在某些调用(new Confused()).method()
- 它似乎已经失去了它的this
指针。这种情况发生的时间似乎取决于功能,而不是随机的;它在代码中围绕着如何创建导致此问题的类。
一个例子是在线http://williame.github.com/barebones.js/和成员回调G3D._file_loaded
有时错误this
指针有时被调用时。
为什么,我该如何解决?
[本文](http://www.quirksmode.org/js/this.html)是否回答你的问题? – Znarkus
'this'的值由每个函数调用的特定情况决定。不要紧,一个函数最初被定义为某个对象的属性的值 - 它根本不关心**。重要的是函数的调用方式,就是这样。 – Pointy