質問のタイトルが混乱しているのはわかりませんが、ここに行きます。外部 'this'がバインドされている場合、現在の要素の 'this'オブジェクトにアクセスします。
私のようなものだ場合:
var Test = function(){
this.foo = a;
}
Test.prototype.init = function() {
$(document).on('change', '.form-control', this.myFunction);
}
Test.prototype.myFunction = function() {
console.log(this.foo);
console.log(this);
}
私の理解では、印刷のMyFunctionの「この」をするとき、それがよ、この場合には、呼び出しを行った関数の実行コンテキストを印刷するだろうということですが.on( 'change' ...)の実行コンテキストを出力します。したがって、this.fooがそのコンテキストに存在しないので、が定義されていないが印刷されます。
この問題を解決し、this.fooにアクセスするには、私がやっている以下:私は「この」関数呼び出しに、そのthis.foo結合してい
Test.prototype.init = function() {
$(document).on('change', '.form-control', (this.myFunction).bind(this));
}
Test.prototype.myFunction = function() {
console.log(this.foo);
console.log(this);
}
をが印刷されますが、これは問題ありません。その場合、どうすれば.on( 'change' ...)の実行コンテキストにもアクセスできますか? ???意味、私は最初にバインディングの前にアクセスしていた 'this'にどうやってアクセスできますか?
ありがとうございました
http://stackoverflow.com/questions/80084/in-javascript-why-is-the-this-operator-inconsistent – Snowmonkey