有没有一种方法可以实现可以拦截箭头功能的记录器功能,例如下面的示例?一世
原始代码:
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();