2

JavaScript オブジェクト プロトタイプに属するコールバック関数は、どのようにオブジェクト メンバーにアクセスできますか? コールバックをクロージャーにすることはできません。すべてを次のように定義する必要があります。

function Obji(param){
   this.element = param;
}

Obji.prototype.func(){
   database.get("someKey",this.cb);
}

Obji.prototype.cb(){
   //here I would like to access this.element
}
4

2 に答える 2

5

database.get("someKey",this.cb.bind(this));

.bind、古いブラウザ用のES5シム

于 2011-06-14T16:53:15.883 に答える
2

JavaScript ではthis、関数が呼び出されたオブジェクト、または呼び出されていない場合はグローバル オブジェクトを常に指します。このようにできますか?

Obji.prototype.func = function(){
   var ref = this;
   database.get("someKey", function(){ref.cb()});
}
于 2011-06-14T16:47:02.527 に答える