执行JavaScript代码的尴尬方式
这个问题在这里已经有了答案:
这是一个不好的例子。 考虑以下:
var a = (function(){
var ret = {};
ret.test = "123";
function imPrivate() { /* ... */ }
ret.public = function() { imPrivate(); }
return ret;
})();
a
将包含varible test和public function,但不能访问imPrivate。 这是处理公共变量与私有变量的常用方法;
请参阅为什么此函数用圆括号括起来,然后用括号括起来? 获取更多信息。
var a = (function() {
return foo(bar);
})();
在这种情况下,这是非常不必要的,但这不是错误的,它不会抛出错误。
但有时候IIF
使用像module pattern
:
var a = (function() {
/* some other code in own scope */
return foo(bar);
})();
在这种情况下, IIF
只是一个向外部输出内容的module
。
闭包函数用于封装函数中的一些属性/方法。 很像其他语言的私人/公共原则。
你可以在模块模式下找到更多关于这个主题的内容
链接地址: http://www.djcxy.com/p/1471.html