如何修复createBar()
以便bar
在与财产相同的级别创建私有财产foo
?
var x = (function() {
var foo = "a";
function createBar() {
this.bar = "b";
}
return {
getFoo: function() {
return foo;
},
getBar: function() {
return bar;
}
}; // end: returned object
}());
这就是模块的工作方式:
x.getFoo(); // returns a
x.getBar(); // returns b
window.bar; // is undefined (but in my example, it is b)
更新:
这就是我现在正在做的事情:
var x = (function() {
var data = {}; //private object holding state variables
data.foo = "a"; // one state variable
function createBar() {
data.bar = "b"; // another dynamically created state variable
}
return {
getFoo: function() {
return foo;
},
getBar: function() {
return bar;
}
}; // end: returned object
}());
但不知何故我不喜欢它。你会怎么做,在私有函数之间共享状态信息?