首页 > 代码库 > 函数创建对象(2)原型模式

函数创建对象(2)原型模式

原型对象的特点是共享,让所有对象实例共享它包含的属性和方法,就是不必再构造函数中定义对象实例的信息,而是将这些信息直接添加到原型对象中;

function Person(){    Person.prototype.name="lee";    Person.prototype.age=29;    Person.prototype.job="Engineer";    Person.prototype.sayName=function(){            alert(this.name);     };     var person1=new Person();      person1.sayName();//"lee"      var person2=new Person();         person1.sayName();//"lee" //"lee"      alert(person1.sayName==person2.sayName);//ture}

 注意:虽然可以通过对象实例访问保存在原型中的值,但却不能通过对象实例重写远行中的值;如果在实例中添加一个属性,属性名与原型中相同,该属性将会屏蔽原型中的那个属性(可以通过delete操作符删除实例属性);

缺点:对于包含引用类型值的属性原型模式的共享特性会造成不需要该属性的实例也受到影响;

函数创建对象(2)原型模式