Да, вы можете сделать это.Вам нужна вспомогательная функция для создания новой функции, которая имеет «привязанный» существующий объект:
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»),этот «указатель будет ссылаться на объект».
Эта версия «bind» упрощена.Такие библиотеки, как Prototype, Functional, jQuery и т. Д., Как правило, предоставляют более надежные версии.Кроме того, функция «bind» когда-нибудь станет встроенной частью Javascript - она уже есть в некоторых браузерах.