先进行代码对比:
工厂模式:
function createObject(name,age) {
var obj=new Object();
obj.name=name;
obj.age=age;
obj.sayHi=function () {
console.log("您好");
};
return obj;
}
var per2=createObject("小明",20);
自定义构造函数:
function Person(name,age) {
this.name=name;
this.age=age;
this.sayHi=function () {
console.log("您好");
};
}
var per1=new Person("小红",20);
共同点:都是函数,都可以创建对象,都可以传入参数
区别:
工厂模式: * 函数名是小写 * 有new, * 有返回值 * new之后的对象是当前的对象 * 直接调用函数就可以创建对象 * 自定义构造函数: * 函数名是大写(首字母) * 没有new * 没有返回值 * this是当前的对象 * 通过new的方式来创建对象