js单体模式

// 单体模式:保证一个特定的类仅有一个实例,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
posted @ 2020-04-20 20:49  风中的猫  阅读(111)  评论(0编辑  收藏  举报