我看到有些人像我一样定义函数:
function stuff(){ /*code here*/ }
我看到其他人也这样做:
(function stuff(){ /*code here*/ })();
在函数周围加上括号有什么区别?它实际上有什么作用吗?
注意:这可能是重复的问题,但由于我没有表达得很好,所以我没有在网上找到答案。
我看到有些人像我一样定义函数:
function stuff(){ /*code here*/ }
我看到其他人也这样做:
(function stuff(){ /*code here*/ })();
在函数周围加上括号有什么区别?它实际上有什么作用吗?
注意:这可能是重复的问题,但由于我没有表达得很好,所以我没有在网上找到答案。
var counter = (function(){
var i = 0;
return {
get: function(){
return i;
},
set: function( val ){
i = val;
},
increment: function() {
return ++i;
}
};
})();
i
在外部是不可用的。你可能已经看到其他人这样做:
(function stuff(){ /*code here*/ })();
这行代码将定义一个函数并立即执行它。
(...)
)内只能是表达式,因此函数定义被解释为函数表达式。函数名称不会在函数本身之外创建绑定。只能在函数内部使用名称访问该函数。 - Felix Kling