this
一部の Javascript オブジェクトでは、作成時にポインターが正しいことがわかります (これらはnew Func()
-type オブジェクトです) が、割り当てられたメソッドでは間違っている可能性があります。
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
ポインターを持ちます。
なぜ、どうすれば修正できますか?