выполните метод для существующего объекта с помощью window.setInterval
-
27-09-2019 - |
Вопрос
Возможно ли запустить метод для существующего объекта по истечении времени ожидания метода window.setInterval.Я могу эмулировать то же самое, имея некоторую глобальную переменную и вызывая метод этой глобальной переменной в setInterval, но я хотел знать, возможно ли это с помощью метода напрямую.
С наилучшими пожеланиями, Кешав
Решение
Да, вы можете это сделать.Вам нужна вспомогательная функция, чтобы создать новое функция, к которой "привязан" ваш существующий объект:
var someRandomObject = {
someMethod: function() {
// ... whatever
},
// ...
};
// this is a "toy" version of "bind"
function bind(object, method) {
return function() {
method.call(object);
};
}
var interval = setInterval(bind(someRandomObject, someRandomObject.someMethod), 1000);
Теперь, когда интервальный таймер вызывает ваш метод ("someMethod"), указатель "this" будет ссылаться на объект.
Эта версия "привязки" упрощена.Библиотеки, такие как Prototype, Functional, jQuery и т.д., Как правило, предоставляют более надежные версии.Кроме того, функция "bind" когда—нибудь станет встроенной частью Javascript - она уже есть в некоторых браузерах.