Jak wywołać metodę obiektu z użyciem setTimeout

piechnat

Można posłużyć się taką funkcją:

Function.prototype.setApply = function(delay, thisArg, argArray) {
  var thisFunc = this;
  argArray = (argArray instanceof Array) ? argArray : [];
  return setTimeout( function() {
    thisFunc.apply(thisArg, argArray);
  }, delay);
};

Przykład użycia:

function TestClass() {
  this.showMsg = function(str) {
    alert(str);
  }
  this.delayedMsg = function(str) {
    this.showMsg.setApply(1000, this, [str]);
  }
}
var testObj = new TestClass();
testObj.delayedMsg('Test');

0 komentarzy