JavaScript 创建对象

84 阅读1分钟

工厂模式

工厂模式是软件开发的一种思想,使用特定工厂函数创建特定的对象

function createPerson(name,age,job){
    let person=new Object(); // 创建局部对象
    person.name=name;       // 将属性设置给对象 
    person.age=age;         
    person.job=job;
    person.introduce=function(){
        console.log(person.name,person.age,person.job)
    }
    return person          // 返回对象
}
let personInstance1=createPerson('zs',12,'前端工程师');
let personInstance2=createPerson('ls',12,'后端工程师')

实现思想:

每次调用工厂函数时,通过new Object() 方法创建一个局部对象,并将传递的参数设置给创建的局部对象,返回创建好的对象。

优点:

  • 相较于通过字面量创建对象,避免过多的冗余代码

缺点:

  • 无法使用 typeof、instance of 等方法进行类型的判断

构造函数

在ES6 之前,JavaScript 中没有class关键字,可以通过构造函数的方式实例化一个对象

function Person(name,age,job){
    this.name=name;
    this.age=age;
    this.job=job;
    this.introduce=function(){
         console.log(this.name,this.age,this.job)
    };
}
​
let personInstance=new Person('zs',12,'前端工程师');

实现思想: 大致与工厂模式一致,使用 new 关键字 进行创建一个局部对象,并将this指向这个局部对象,并返回这个对象

优点

  • 可使用instance of 进行判断对象的类型

缺点

  • 一些公共属性重复,占据内存空间

原型模式

基于构造函数创建对象的方式,将公共属性设置为原型对象的属性

function Person(){
    
}

\