每当我编写如下Javascript时,Intellij IDEA就会显示警告:
someFunction(someOtherFunction());
但是这种解释并没有真正的帮助:
“此检查报告了用作
另一个函数调用的参数。”
我经常这样做,所以隐藏在那里的潜在陷阱值得警告吗?或者,如果仅是一些编码约定,其原因是什么?
最佳答案
这是一个警告,因为在大多数情况下,您都希望将函数引用作为参数传递。它主要用作回调:
someFunction(someOtherFunction);
function someFunction(fn){
fn.call();
}
在该示例中,
someOtherFunction()
而不是someOtherFunction
不能按预期工作(除非someOtherFunction
本身返回函数)。someFunction(someOtherFunction());
更像吸气剂一样工作。someFunction(someOtherFunction());
function someFunction(int){
alert(int === 1);//True;
}
function someOtherFunction(){
return 1;
}
这是一个警告,因为它是新开发人员的常见错误。