创建对象的方法之一:原型模式

创建对象的方法之一:原型模式

eg:function Person(){

}
Person.prototype.name="zhaolu";
Person.prototype.age=24;
Person.prototype.job="Software Engineer";
Person.prototype.setName=function(){
 alert(this.name);
};

var person1=new Person();

var person2=new Person();


person1.setName();   //zhaolu

person1.setName();    //zhaolu

每个函数都有一个原型属性(prototype),这个属性指向对象,其通过调用构造函数而创建对象的原型对象,可以让所有实例对象共享它包含的
的所有属性和方法。

原型模式可以通过对象实例来访问保存在原型中的值,但是不能通过对象实例重写原型中的值。

如果在事例中添加了一个属性,且该属性与实例原型中的一个属性同名,那该属性会屏蔽原型中的那个属性。也就是说添加的这个属性会
阻止我们访问原型中的那个属性,但不会修改原型中的同名属性。

一旦设置同名属性后,即使再将该属性设置为null;也只会在实例中设置这个属性,而不会回复其指向原型的链接,不过可以通过delete操作符
完全删除实例属性,从而可以重新访问原型中的属性。

 

posted @ 2017-04-20 19:56  Lu_Lu陌鹿  阅读(186)  评论(0编辑  收藏  举报