这两种 IIFE 调用语法有什么区别?

What's the difference between these two IIFE invocation syntaxes?

(function f() {
    // do something
}());

(function g() {
    // do something
})();

注意括号的位置。

  1. 这些执行方式相同吗?
  2. 他们对变量范围的限制不同吗?

他们是一样的。只是两个符号来做同样的事情。 有些人发现一种表示法比另一种更直观。只是偏好问题,仅此而已。