var app = (function(){
var foo = 'x';
var bar = function (){
...
};
var xx = function () {
bar();
}
return {
xx:xx
}
})();
由于该函数是立即调用的函数表达式(IIFE),因此app var被赋予返回的对象文字。但私人会员以何种方式返回?成员foo是否不在app中,因为它没有在任何公共方法中引用?如何将bar的引用存储在app变量中?
答案 0 :(得分:0)
变量foo是私有的,因为它不能从IIFE外部接收,但它可以来自xx,bar和IIFE的其他部分,因为它在它们的范围之内(或之上)。 app变量只会知道对象{xx:xx},仅此而已,因此IFFE就像一个黑盒子。应用程序变量和相邻的变量知道什么离开它但它不能获得内部的任何值,例如foo。