gpt4 book ai didi

javascript - 为什么我的单例无法工作?

转载 作者:行者123 更新时间:2023-11-28 18:23:02 24 4
gpt4 key购买 nike

我是 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com