在我的一些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