如何为 JavaScript 箭头函数创建记录器?

How can I create a logger for a JavaScript arrow function?

有没有办法像下面的例子那样实现一个可以拦截箭头函数的记录器函数?我

原代码:

const arrowFunctionExample = (value)=> {
    console.log('arrowFunctionExample',value)
}

function main(){
    arrowFunctionExample('testing')
}

新代码:

const arrowFunctionExample = (value) => {
  console.log('arrowFunctionExample', value)
}

function main() {
  logger(arrowFunctionExample('testing'))
}

//something like this
const logger = (fn) => {
  console.log('logger', fn)
  if (typeof fn === 'function') {
    fn(value)
  }
}

我想在两种情况下主执行时获得相同的效果,而无需编辑箭头功能。

这是你想要的吗?

function logger(fn){
    return function(){
        console.log("log:", fn.name, arguments);
        return fn.apply(this, arguments);
    }
}

const arrowFunctionExample = (value)=> {
    console.log("do something with", value);
};

function main(){
    logger(arrowFunctionExample)('testing')
}

main();