JavaScript設計模式-- 單體(Singleton)模式

定義: 只想一個類別永遠只有一個實體, 確保一個實體在全域上操作。

e.g.

function Cat() {

if (typeof Cat.instance === "object") {         // 因為這實體型別為Object
return Cat.instance;
}

this.name = "Mimi";
Cat.instance = this;                                            // 存一個實體出來, 以後就只用這個實體
return this;

}

Cat.prototype.move = function() {
return this.name + " move";
};

var cat1 = new Cat();
var cat2 = new Cat();

console.log(cat1 === cat2);                                  // true
cat1.name = "Coco";
console.log(cat2.name);                                       // "Coco"




p.s. 怎麼知道Cat.instance是指實體?

從瀏覽器中看它結構就是一個實體的樣子:


dir(Cat.instance);
    --> name: "Coco"
    --> __proto__: Object
        --> constructor: function Cat()
        --> move: function()



留言

熱門文章