Я просто исправлю проблему с областью в моем классе 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» (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind) – elclanrs
Спасибо, добавили информацию из вашего комментария в ответ, для полноты. – bfavaretto
Итак, это ограничение использования прототипа, если мы хотим сохранить его в старых браузерах. Благодарю. – Gustavo