gpt4 book ai didi

Javascript 单例类默认值

转载 作者:行者123 更新时间:2023-11-30 08:53:36 24 4
gpt4 key购买 nike

如何在单例类中设置默认值。我在我的类(class)中有这本字典,其中变量名“myVar”的值为 3。但是,运行下面的这段代码不会返回值 3,而是返回未定义。

init = function() {
var var1 = Singleton.myVar;
console.log(var1); // Returns undefined
var1 = 3;
console.log(var1);; // Returns 3
var var2 = Singleton.myVar;
console.log(var2); // Returns undefined
}

单例类:

 var Singleton = (function(){
var instantiated;
function init (){
// all singleton code goes here
return {
myVar: 3,
publicWhatever:function(){
alert('whatever')
},
publicProperty:2
}
}

return {
getInstance :function(){
if (!instantiated){
instantiated = init();
}
return instantiated;
}
}
})()

最佳答案

您需要使用 getInstance 函数来获取您的单例实例:

 var var1 = Singleton.getInstance().myVar;

请注意,您的工厂似乎过于复杂。我明白使用 an IIFE 的意义了(你可以定义额外的私有(private)字段或函数)但你可以使用 IIFE 并将你的单例工厂减少到

var Singleton = (function(){
return {
myVar: 3,
publicWhatever:function(){
alert('whatever')
},
publicProperty:2
}
})();

关于Javascript 单例类默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15611857/

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