不知道問題的標題是否太混亂,但我在這裏。當外部'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,因爲它不存在於這種情況下,然後undefined將被打印出來。
爲了解決這個問題,並訪問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);
}
我結合「這」的函數調用,所以this.foo會被打印出來,這是好的,但我的問題是,在那種情況下,我怎樣才能獲得.on('change'...)的執行上下文?意思是,如何訪問我在綁定之前最初訪問的'這個'?
謝謝
http://stackoverflow.com/questions/80084/in-javascript-why-is-the-this-operator-inconsistent – Snowmonkey