gpt4 book ai didi

JavaScript 单例

转载 作者:行者123 更新时间:2023-12-03 12:21:23 26 4
gpt4 key购买 nike

谁能解释一下

  1. 为什么ab在这里引用同一个对象?

如果我想创建两个不同的 Singleton 实例怎么办 对象(我知道这违反了设计模式,但只是为了 学习目的),我应该修改什么?

function MySingletonClass() {
if ( arguments.callee._singletonInstance )
return arguments.callee._singletonInstance;
arguments.callee._singletonInstance = this;

this.Foo = function() {
// ...
}
}

var a = new MySingletonClass()
var b = MySingletonClass()
Print( a === b ); // prints: true

最佳答案

不知道你想在这里实现什么,但是正确的单例实现不应允许通过调用其构造函数来创建new Singleton()

以下代码以正确的方式实现单例,恕我直言:`

var Singleton =  new function () 
{
var instance = this;
this.getInstance = function()
{
if(!instance)
instance = new Singleton();

return instance;
}
}

//var instance1 = new Singleton();// should not work
//var instance2 = new Singleton();
//alert( instance2 == instance1 );
alert (Singleton.getInstance() == Singleton.getInstance()) // returns true

`

关于JavaScript 单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24427683/

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