javascript内置对象arguments详解(2)

function repeat(fn, times, delay) {  
  return function() {  
    if(times– > 0) {  
      fn.apply(null, arguments);  
      var args = Array.prototype.slice.call(arguments);  
      var self = arguments.callee;  
      setTimeout(function(){self.apply(null,args)}, delay);  
    }  
  };  
}

Repeat函数使用了arguments.callee方法从变量self去获取一个引用,指向运行原始指令的函数。这样,匿名函数就可以再次调用本身。
我有一段超级简介的函数,承载了一个字符串和执行alert方法。

复制代码 代码如下:

function comms(s) {  

alert(s);  

然而,我想创建一个特殊的版本,通过这个版本我可以重复这个动作三次,每次间隔2秒钟。那么,我们可以

复制代码 代码如下:

var somethingWrong = repeat(comms, 3, 2000);  
somethingWrong(“Can you hear me, major tom?”);


调用了somethingWrong函数的结果就是复这个动作三次,每次alert间隔2秒钟。
Arguments虽然不是经常用到,有点古怪,但是,它充满了惊喜,非常值得我们去了解 。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdygdf.html