工厂模式:用一个函数返回一个对象。
function createPerson(name,age,job){
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function(){
alert(this.name)
};
return o;
}
var person1 = createPerson('chiang','21','FED')
写一个create函数,在里面创造一个对象,给这个对象添加属性,然后返回这个对象。这种方式可以“批量生产”,但是不能体现是谁创造的实例。所以有了构造函数模式(New)
构造函数模式
构造函数模式就是使用new关键字
当我们通过原型减少内存的时候造成了一些问题:
- 创建多个对象的时候需要循环
- 循环导致内存问题,于是使用原型
- 使用了原型以后需要封装
JS之父的关怀——关键字New
New做了什么:
- 创造临时对象
- 帮你绑定原型,并规定原型名字叫prototype
- 帮你return
4.new会在构造函数的prototype上加一个constructor属性,它记录了是谁创造的临时对象
总的来说new就是一个语法糖,为了简化解决工厂模式问题的代码。