Lyrics

原型模式

每个函数都有一个原型函数prototype,这个属性是一个指针,通过构造函数来创建对象实例的原型对象

    /**
 * Created by admin on 2016/11/27.
 */
window.onload=function(){
      function Person(){

        };
Person.prototype.name="zhangfan";//创建Person的属性也可以创建方法
var person1=new Person();
var person2=new Person();

alert(person1.name);//zhangfan  因为person1没有构建自己的name属性。所以当执行这个时,在自己的属性里面没有找到,所以就会向原型对象中寻找,找到Person的name属性
    //所以原型属性可以让原型对象(Person)的实例(person1/2)共享属性和方法
    //但是注意在使用时如果实例(person1/2)中包含和原型对象(Person)相同的属性和方法,则会优先选择实例中的属性和方法

person1.hasOwnProperty("name");//false
    //这个方法判断属性是存在于实例中还是原型对象中

alert(Object.getPrototypeOf(person1)==Person.prototype);
//Object.getPrototypeOf()判断实例的内部原型属性[[prototype]]是否指向原型对象的prototype
}

评论