针对原型和原型链的理解总结网上的说法,给出自己的理解:
一、什么是原型?
每个函数都有原型属性(prototype),这个属性指向一个对象,即原型对象。主要用途是用来给实例共享属性和方法的。
二、原型之间的关系?
①、每个Function都有一个prototype,即显示原型;
②、每个实例对象都有一个__proto__,即隐式原型;
③、对象的隐式原型的值为其对应构造函数的显式原型的值,即 实例对象.__proto__ == 构造函数.prototype
三、什么 是原型链?
在jS中如果访问一个对象本身不存在的属性或方法,首先会在这个对象的原型对象上寻找,如果原型对象也不存在,则继续寻找原型对象的原型对象,直到找到为止。
所有对象的原型尽头为Object.prototype,这个对象的__proto__值为null。这一层层原型就是原型链。