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()
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()
留言
張貼留言