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

前端之家收集整理的这篇文章主要介绍了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();
}

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

最佳答案
看起来你的spyOn函数应该接受一个函数fn作为参数并返回一个函数(让我们称之为内部),调用带有参数inner的fn调用f并返回fn返回的值:

const spiedCube = spyOn( cube,function ( count,result ) {
  if ( count % 3 === 0 )
    console.log( `Called ${count} times. Result: ${result}` );
} );

for ( let i = 0; i < 12; i++ )
  console.log( spiedCube( i ) );

//

function spyOn( fn,handler ) {
    
    let count = 0;
  
    return function inner ( ) {
        count++;
        const result = fn( ...arguments );
        handler( count,result );
        return result;
    };
    
}

function cube ( x ) {
    return x**3;
}

猜你在找的JavaScript相关文章