带有额外花括号的封口

时间:2014-02-15 19:14:39

标签: javascript

jquery的源代码开头是这样的:

;(function (props) {..}(props) 

// I do not understand the following curly braces:  
{...}

));

我知道这是一个匿名函数表达式(闭包),它在加载脚本后执行(仅一次)。这样的事情(“正常关闭”):

(function(props){
...

}(props));

但是,我不明白额外的花括号在做什么(好处,用例)。在“正常关闭”中,我不使用这些花括号。

1 个答案:

答案 0 :(得分:3)

额外的花括号是函数定义的一部分,您在问题中遗漏了它。实际代码看起来更像是这样:

;(function( global, factory ) {

  // ...

} (typeof window !== 'undefined' ? window : this, function(...) {

  // ...

}));

即。函数传递两个参数window和另一个函数。如果现在计算括号(()),它们会匹配。