如果我们想使用私有变量,我有一些关于在 javascript 中创建单例的两种方法的阅读 - 简单的对象文字方式和另一种使用闭包技术。
我正在寻找一个实用功能,例如
Singleton(classname);
无论什么类——“构造函数”我在这里作为参数传入,Singleton 方法都将这个类转换为一个 Singleton 对象,加上在调用new Classname()
if 有人再次触发 new classname() 之后他/她得到了一些new Error ( "Already instantiated once, this is Singleton" );
用例如下 -
function Circle() {this.name = "Circle";}
SingleTon(Circle);
var circle1 = new Circle(); // returns the circle instance
var circle2 = new Circle(); // throws Error "Already instantiated once, this is Singleton"
我只是想在这里定义“单例”方法。
我见过类似的例子,其中使用 getInstance 方法来获取实例,例如 - Singleton.getInstance(Circle)等,但我正在寻找上面的特定问题,另一个程序员习惯于以“新”方式创建实例试图在他的代码某处第二次触发new Circle();
并收到错误。
以这种方式创建单例是一个问题,但主要问题是抛出“错误”,据我了解,Circle 构造函数需要在单例函数的某处进行修改,不知道如何完成此操作。
有什么解决办法吗?
提前致谢 !!