任何函数天生自带一个属性叫 prototype,这个属性指向一个对象
任何对象天生自带一个属性叫 proto ,指向的也是一个对象
new构造函数出来的对象的__proto__属性指向的对象和构造函数的prototype指向的对象是同一个
var zs = new Person();
console.log(Person.prototype === zs.__proto__); // true
如果这两个对象是同一个 - 这个对象就叫原型
原型有什么用?
给原型添加属性
Person.prototype.name = "张三";
console.log(Person.prototype);
被new出来的对象可以使用原型上的属性和方法
console.log(zs.name); // 张三
// 当访问一个对象中的属性或方法时,先在对象上找有没有,如果没有,就去找个对象的原型上找
任何函数天生自带属性prototype,指向一个原型对象
任何对象天生字典属性__proto__,指向一个原型对象
对象访问属性或方法时,先在自己里面找,找不到就会到原型上找