原型模式
每个函数都有一个原型函数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
}