JavaScript 监听函数的执行次数

Caio_zcy 发布于 2015/10/30 10:35
阅读 279
收藏 0
 var foo = function(){alert('called!')};

time(foo,2);

foo();//弹出called
foo();//弹出caleed
foo();//do nothing

大家来看看这个time函数怎么实现 ,控制传入的函数的执行次数 ?
加载中
0
Tom旭
Tom旭
把次数作为一个全局参数,每次执行 +1
0
frantic1048
frantic1048

function time(foo, limit) {
   let time = limit;
   let returnValue;
   return function() {
     returnValue = undefined;
     if (limit > 0) {
       --limit;
       returnValue = foo.apply(this, arguments);
     }
     return returnValue;
   };
}

function sho() { return 'sho!'; }

const limitedSho = time(sho, 2);

limitedSho(); // "sho!"
limitedSho(); // "sho!"
limitedSho(); // undefined



返回新函数是比较不污的做法,在 time 后面的调用应该是 time 返回的新函数。

返回顶部
顶部