1、 所有的对象,都有prototype属性。 只不过 实例的prototype 是 undefined。
2、 所有的构造函数 都是 Function 的实例。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jm7Mc8Gh-1597897515025)(原型.png)]
JS中每个对象都有一个prototype 属性。 称为原型。
而原型的值 也是一个对象,因此 它也有自己的原型,这样就串联起了一条原型链。
原型的链头是 object, 他的 prototype 比较特殊,值为null。
原型链的作用 对象继承。 函数A的uanxing属性是一个对象,当把这个函数作为构造函数来创建实例时,
该函数的原型属性将作为原型赋值给所有对象实例,比如 新建一个数组,数组的方法便 从数组的原型上继承而来。
而来。
当访问对象的一个属性时, 首先查找对象本身。若找到,则返回;若未找到,则继续查找其原型对象的属性(如果还找不到,实际上还会沿着原型链向上查找,直到根)。只要没有被覆盖,对象原型的属性就能在所有的实例中找到,若整个原型链都未找到,则返回undefined。