mat*_*kov 5 javascript closures
有人可以解释这些闭包之间的区别吗?有区别吗?我以前没见过第二个例子(里面的括号).
(function(a, b) {
//...
})(x, y);
// Parentheses inside
(function(a, b) {
//...
}(x, y));
Run Code Online (Sandbox Code Playgroud)
在这里,这些闭包之间有区别吗?是否有一个地方有一个场景会出现差异?
FOO.Bar = (function() {
//...
})();
FOO.Bar = (function() {
//...
}());
Run Code Online (Sandbox Code Playgroud)
不。在这两种情况下,它们完全相同。
当您将函数括在括号中时,会发生从函数声明到函数表达式的过程,可以立即调用函数表达式。
无论您在括号内还是之后调用它都没有关系。“约定”已经发生,因此您可以调用它。
实际上你可以这样做
FOO.Bar = function () {
return 123;
}();
Run Code Online (Sandbox Code Playgroud)
上面已经是一个函数表达式,因为您正在将匿名函数分配给Bar上的属性FOO。
| 归档时间: |
|
| 查看次数: |
948 次 |
| 最近记录: |