每当我编写如下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;
}


这是一个警告,因为它是新开发人员的常见错误。

08-17 19:51