我試圖創建JS一個「類」,簡化結構,其中低於:獲取「這個」背景下
http://codepen.io/Deka87/pen/WpqYRP?editors=0010
function Alert() {
this.message = "Test alert";
this.document = $(document);
this.document.on('click', function() {
this.show();
}.bind(this));
};
Alert.prototype.show = function() {
setTimeout(function() {
console.log(this.message);
}, 50);
};
var alert = new Alert();
當你點擊document
它應該會在控制檯中顯示this.message
的內容。但是,它現在顯示爲undefined
。我相信問題是this.messsage
無法獲得原始this
上下文,因爲它是另一個函數的包裝(在我的情況下爲setTimeout
)。任何幫助,將不勝感激!
可能重複[將正確的「this」上下文設置爲setTimeout回調?](http://stackoverflow.com/questions/2130241/pass-correct-this-context-to-settimeout-callback) – Andreas
嚴重的是,你有在你的代碼中已經綁定了... – Adam