如何返回调用函数的次数?

时间:2018-01-26 18:31:31

标签: javascript

我试图在多次调用函数后返回一个值。这是我到目前为止所做的:

function spyOn(fn) { //takes in function as argument
//returns function that can be called and behaves like argument
var count = 0;

var inner = function(){
  count++;
}

inner.callCount = function(){return count};

}

这就是我测试它的方式:

for (var i = 0; i < 99; i++) {
  spyOn();
}

我觉得这是一个简单的问题,我应该能够简单地谷歌,但我一直无法找到解决方案。谢谢!

2 个答案:

答案 0 :(得分:2)

看起来你的spyOn函数应该接受一个函数fn作为参数并返回一个函数(让我们称之为inner),用参数{fn调用它调用{1}}并返回inner返回的值:

&#13;
&#13;
fn
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以执行类似功能的拦截器

这是一个很小的版本,从现在开始你可以添加参数和必要的行为,这里最重要的是你的函数是如何被拦截器包装的,每次调用都会增加一个调用次数。

function spyOn(fn) {
  var count = 0;
  
  return function() {
    fn();
    count++;

    console.log(count);
  }
}

var myFunction = function() {
  console.log("called!");
};

var spy = spyOn(myFunction);

for (var i = 0; i < 99; i++) {
  spy();
}