我是 JS 初学者,试图了解单例是如何工作的,在阅读了这么多单例模式之后,我得出结论,以下单例模式可以工作,
var singletonIns = (function() {
var instance;
function init() {
var _pvtVar = 123;
var pubVar = 111;
var logPvt = function() {
console.log(_pvtVar);
};
return {
pubVar : pubVar,
logPvt : logPvt
};
}
return {
getInstance : function() {
if (!instance) {
instance = init();
} else {
return instance;
}
}
};
})();
它不会在运行时引发任何错误。
但是,当我运行此代码时 var abc = singletonIns.getInstance()
它返回 undefined
,并且我们无法访问 abc.pubVar
,这是为什么?
请像我五岁一样解释一下。
提前致谢。
最佳答案
if (!instance) {
instance = init();
...然后呢?那么你就不会返回任何东西。之后添加 return instance;
就可以了。
当实例启动时,您将返回该实例,但如果不是,您只需分配它而不返回。
关于javascript - 为什么我的单例无法工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39645258/