一、创建对象
1、工厂模式
2、构造函数模式
3、原型模式
原型对象:
只要创建一个新的函数,就会根据特定的规则为该函数创建一个prototype属性,这个属性指向函数的原型对象(prototype),在默认情况下原型对象都会自动获得一个constructor(构造函数)属性,这个属性是一个指向prototype属性所在函数的指针。
当调用构造函数创造创建一个实例后,该实例内部将包含一个指针([[prototype]]),指向构造函数的原型对象,这个指针的连接是存在实例与原型对象之间,而不是存在实例与构造函数之间
Person构造函数,Person的原型属性以及Person现有的两个实例之间的关系
4、组合使用构造函数模式和原型模式
构造函数用于定义实例属性,而原型模式用于定义方法和共享属性
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
}
Person.prototype ={
constructor : Person,
sayName : function(){
alert(this.name)
}
}
5、动态原型模式
6、寄生构造函数模式
7、稳妥构造函数模式