【发布时间】:2016-12-05 10:19:19
【问题描述】:
我已经在 javascript 中实现了单例模式。
如下,
var Student = (function(){
var obj = {};
return {
getInstance : function(){
return obj;
}
}
})();
var student1 = Student.getInstance();
student1.name = "Mejam Kinavchisko";
var student2 = Student.getInstance();
student2.age = 23;
console.log(student1.name);
console.log(student2.name);
console.log(student2.age);
console.log(student1.age);
输出如下,
Mejam Kinavchisko
Mejam Kinavchisko
23
23
在上面的示例中,如果我添加一个新属性“name”并分配给定实例,您可以看到 一些值,同样反映在另一个实例中。
即student1 和 student2 指向同一个对象。
因此我不知道我是否在 javascript 中实现了单例模式?
【问题讨论】:
-
反映了相同的值,因为对象是通过引用传递的。所以实际上,
Stugent.getInstanceOf将返回一个位置,然后你覆盖该位置的对象 -
您期待什么样的答案?一个简单的
Yes / No?
标签: javascript design-patterns singleton