【发布时间】:2013-11-25 11:55:21
【问题描述】:
我创建了一个类,但在从私有方法访问公共方法时遇到了一点麻烦。我的例子是这样的:
var mySingleton = (function () {
function init() {
function privateMethod(){
publicMethod();
//this.publicMethod() also doesn't work
}
privateMethod();
return {
publicMethod: function () {
console.log( "The private method called me!" );
}
};
};
return {
getInstance: function () {
if ( !instance ) {
instance = init();
}
return instance;
}
};
})();
var singleton = mySingleton.getInstance();
似乎范围完全不同。我应该以不同的方式创建单例吗?
【问题讨论】:
-
私有“方法”在哪里调用?
-
@Bergi 抱歉,刚刚添加。在 init() 中调用;
-
@DevinDixon 你能提供你想如何使用它的示例吗?
-
@Grundy 我认为上面的示例非常精简以满足任何人的需要。我使用的案例是在页面上进行动作跟踪。我希望与服务器的所有通信都是私有的,但获取页面高度、浏览器类型等方法是公开的。
标签: javascript design-patterns singleton