1
我只是用bind方法來更正我的JavaScript類中的作用域問題,該方法將setInterval調用的函數放在正確的作用域中。但是它的綁定早已到來(1.8.4我認爲),我擔心瀏覽器的兼容性。JavaScript setInterval範圍問題:替代綁定
有沒有另一個更舊的選擇?我應該忘記舊的瀏覽器嗎?
例子:
function MyClass(SomeText){
this.text = SomeText;
}
MyClass.prototype.test = function(){
console.log("The text: "+this.text);
}
MyClass.prototype.initialize = function(){
setInterval(this.test.bind(this), 1000);
}
var Test = new MyClass("my thoughts");
Test.initialize();
+1擊敗我15秒。如果您使用jQuery,則有'$ .proxy'。 [MDN]上還有一個'bind' polyfill(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind) – elclanrs
謝謝,在評論中添加了信息答案,完整性。 – bfavaretto
所以這是一個原型使用限制,如果我們想讓它在舊的瀏覽器中工作。謝謝。 – Gustavo