Singleton模式的实现

时间:2016-12-05 10:19:19

标签: javascript design-patterns singleton

我在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中实现了Singleton Pattern?

2 个答案:

答案 0 :(得分:0)

  

单例模式因此是已知的,因为它将类的实例化限制为单个对象。传统上,Singleton模式可以通过创建一个类来实现,该类使用一个方法创建一个新的类实例(如果不存在的话)。如果实例已经存在,它只返回对该对象的引用。

此处创建的两个对象的引用相同,因此viewForRow1行为。

有关该主题的详细信息,请阅读Addy Osmani's guide to Javascript Design Patterns.

答案 1 :(得分:0)

是的,这是单身模式,这就是为什么student1和student2指向同一个对象。

有关信息,请参阅 http://www.dofactory.com/javascript/singleton-design-pattern