我试图在多次调用函数后返回一个值。这是我到目前为止所做的:
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();
}
我觉得这是一个简单的问题,我应该能够简单地谷歌,但我一直无法找到解决方案。谢谢!
答案 0 :(得分:2)
看起来你的spyOn
函数应该接受一个函数fn
作为参数并返回一个函数(让我们称之为inner
),用参数{fn
调用它调用{1}}并返回inner
返回的值:
fn
&#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();
}