// 单体模式:保证一个特定的类仅有一个实例,js中使用对象字面量创建的对象就是一个单体的实例
let obj = {
name: ''
};
let obj2 = {
name: ''
};
console.log(obj === obj2); //false
function ObjData(name) {
this.name = name;
};
let person = new ObjData('');
let person1 = new ObjData('');
console.log(person === person1);// false 构造函数实例化出来是两个对象而不是一个
// 改造构造函数实现单体模式
function Animal(name) {
if(typeof Animal.status === 'object') return Animal.status;
this.name = name;
Animal.status = this;
return this;
}
let cat = new Animal('猫');
let dog = new Animal('狗');
console.log(cat === dog); // true