Javascript Can';无法获取内部arrow函数的'arguments'

Javascript Can';无法获取内部arrow函数的'arguments',javascript,Javascript,当我意识到它没有按预期工作时,我正在制作一个decorator函数来响应。函数只计算给定函数被调用的次数,并记录它 函数计数执行(fn){ 让计数=0; return()=>{ log(“调用”++计数); 返回fn.apply(这个,参数);; } } var测试=计数执行((a,b)=>a+b); var x=试验(1,2); console.log(x);//(a,b)=>a+bundefined我认为您误解了箭头函数,以下是您的匿名(不使用箭头函数)版本: (或者,也可以使用箭头功能,

当我意识到它没有按预期工作时,我正在制作一个decorator函数来响应。函数只计算给定函数被调用的次数,并记录它

函数计数执行(fn){
让计数=0;
return()=>{
log(“调用”++计数);
返回fn.apply(这个,参数);;
}
}
var测试=计数执行((a,b)=>a+b);
var x=试验(1,2);

console.log(x);//(a,b)=>a+bundefined
我认为您误解了箭头函数,以下是您的匿名(不使用箭头函数)版本:

(或者,也可以使用箭头功能,如中所述。)

函数计数执行(fn){
让计数=0;
返回函数(){
log(“调用”++计数);
返回fn.apply(这个,参数);;
}
}
var测试=计数执行((a,b)=>a+b);
var x=试验(1,2);

console.log(x);//(a,b)=>a+bundefined
我认为您误解了箭头函数,以下是您的匿名(不使用箭头函数)版本:

(或者,也可以使用箭头功能,如中所述。)

函数计数执行(fn){
让计数=0;
返回函数(){
log(“调用”++计数);
返回fn.apply(这个,参数);;
}
}
var测试=计数执行((a,b)=>a+b);
var x=试验(1,2);

console.log(x);//(a,b)=>a+bundefined
由于函数被命名,但由于您使用的是arrow函数,因此它不会以这种方式运行。箭头函数不仅不定义自己的函数作用域,而且不定义任何
参数

箭头函数表达式的语法比函数短 表达式,并且没有自己的this、arguments、super或 新目标。这些函数表达式最适用于非方法 函数,它们不能用作构造函数


由于函数被命名,它不会以这种方式运行,而是因为您使用的是箭头函数。箭头函数不仅不定义自己的函数作用域,而且不定义任何
参数

箭头函数表达式的语法比函数短 表达式,并且没有自己的this、arguments、super或 新目标。这些函数表达式最适用于非方法 函数,它们不能用作构造函数


如上所述,未为箭头函数定义
参数。但是为什么不使用spread语法:

函数计数执行(fn){
让计数=0;
返回(…参数)=>{
log(“调用”++计数);
返回fn.apply(此参数为args);
}
}
var测试=计数执行((a,b)=>a+b);
var x=试验(1,2);

console.log(x);//3
如上所述,
参数
不是为箭头函数定义的。但是为什么不使用spread语法:

函数计数执行(fn){
让计数=0;
返回(…参数)=>{
log(“调用”++计数);
返回fn.apply(此参数为args);
}
}
var测试=计数执行((a,b)=>a+b);
var x=试验(1,2);

console.log(x);//3
arrow函数没有
这个
参数
也应该在不命名的情况下工作-只是做一个普通的
函数(){}
哦,没错!!所以这不是匿名的问题,而是@jhpratt的可能复制品:我的问题接近于那个问题,但我得到了更多有用的答案。所以我不想把它标为复制品。谢谢箭头函数没有
这个
参数
也应该在不命名的情况下工作-只是做一个普通的
函数(){}
哦,没错!!所以这不是匿名的问题,而是@jhpratt的可能复制品:我的问题接近于那个问题,但我得到了更多有用的答案。所以我不想把它标为复制品。谢谢你能添加@trincot的替代方案来完成你的回答吗?对于将来类似的问题,您可以添加@trincot的替代方案来完成您的回答吗?对于将来类似的问题,这将是非常好的。