闭包语法:(function a(){})()==(function a(){}())?

时间:2013-04-04 18:38:33

标签: javascript closures

我注意到Google Closure Compiler似乎可以互换使用。

1

(function a() {
  window.requestAnimationFrame(function() {
    //
    a();
  });
})();

2

(function a() {
  window.requestAnimationFrame(function() {
    //
    a();
  });
}());

1 个答案:

答案 0 :(得分:1)

没有一个"闭包语法" :确保构建函数表达式的任何语法,这是一个函数表达式,编译器不能将其与函数定义的开头混淆,并且您调用它是正常的。在这里,两者都有效。

例如,您可以使用

+function(){
  ...
}();

只需选择最易阅读且不那么令人惊讶的那个。我认为第一个,其中调用括号是最明显的,是最常用和期望的。