Sha*_*ear 1 javascript function anonymous-function
省略 JavaScript IIFE 的主括号(...)并仅();在末尾以及函数表达式分配给变量时使用是否有任何错误(或不良实践)?
let foo = function() {
return 'Hello'
}();
// so we use 'foo', not 'foo()'
console.log(foo); // 'Hello'
Run Code Online (Sandbox Code Playgroud)
虽然TypeScript在没有警告的情况下接受这一点,但我们应该总是这样做吗?
let foo = (function() {
return 'Hello'
})();
Run Code Online (Sandbox Code Playgroud)
您应该始终将立即调用的函数括在括号中。它更清楚地表明它是一个 IIFE,并且省略括号可能会导致语法错误。情况不会总是如此,但这两个角色真的值得模棱两可吗?
如果您不包装您的函数,那么我作为将来检查您的代码的另一位开发人员,必须知道滚动到函数的底部,然后才能知道它正在被调用而不是函数定义。