几天前我问了一个类似的问题,但我想我还是做错了什么,所以这个问题更集中:
据我了解并根据这本书,该函数privateFunction
应该不能从mySingleton
对象外部获得,publicFunction
只能以这种方式调用:mySingleton.publicFunction
.
但是 - 违反我的意愿和意图,privateFunction 在对象之外非常可用。
这是为什么?我究竟做错了什么?
var mySingleton = new (function (window, document, undefined) {
var privateFunction = function () {
//code
},
mySingleton = {
publicFunction: function () {
//code
}
};
return mySingleton;
})(window, document, undefined);
编辑:我刚刚发现了问题。语法错误,多么丢脸。看看第 2 行的分号。我昨晚发帖时错过了这一行:
var mySingleton = new (function (window, document, undefined) {
var self = this;
privateFunction = function () {
//code
},
mySingleton = {
publicFunction: function () {
//code
}
}
return mySingleton ;
})(window, document, undefined);
用逗号替换分号使私有方法“再次”私有。无论如何,看看这段代码,我希望这样的语法会导致语法错误,因为后面的逗号privateFunction
- 我错了吗?