自定义构造函数创建对象和工厂模式创建对象的区别

自定义构造函数创建对象的方式

function Person() {
    this.name=name;
    this.age=age;
    this.sex=sex;
    this.play=function(){
    console.log("喜欢唱歌");
}
};
//创建对象----->实例化一个对象的同时对属性进行初始化
var per=new Person("小红",20);

工厂模式创建对象

function createObject(name,age){
    var obj=new Object();
    this.name=name;
    this.age=age;
    this.sex=sex;
    this.sayHi=function(){
        console.log("您好");
    }
    return obj;
};

区别:

共同点: 都是函数,都可以创建对象,都可以传入参数

不同点:

        工厂模式:函数名是小写、有new、有返回值、new之后的对象是当前的对象、直接调用函数就可以创建对象

        自定义构造函数:函数名是大写、没有new、没有返回值、this是当前对象、通过new的方式来创建对象

 

猜你喜欢

转载自blog.csdn.net/weixin_41829477/article/details/81272761