使用window.setInterval对现有对象执行方法

时间:2010-06-15 10:55:39

标签: javascript window setinterval

是否可以在window.setInterval方法的超时时在现有对象上运行该方法。我可以通过使用一些全局变量并在setInterval中调用此全局变量的方法来模拟相同的内容,但我想知道是否可以直接使用该方法。

最诚挚的问候, 凯沙夫

1 个答案:

答案 0 :(得分:2)

是的,你可以这样做。您需要一个辅助函数来创建一个 new 函数,该函数将您的现有对象“绑定”:

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”指针将引用该对象。

简化了“bind”的版本。 Prototype,Functional,jQuery等库通常提供更强大的版本。此外,“绑定”功能有一天将成为Javascript的原生部分 - 它已经存在于某些浏览器中。