原型的原型链与实例的原型
JS 中的三类对象
- 函数对象
- 原型对象
- 实例对象
其中,函数对象是核心,原型对象是桥梁,实例对象是砖块。
这么说的意思是,在 JS 中,函数起着核心作用,每创建一个函数的同时,也创建了一个与函数相对应的原型。
在某种意义上,所有的函数都是全局唯一函数 Function 的实例对象。
此外,JS 规定,除了一个之外的所有原型,在默认情况下的上一个原型都是 Object.prototype(这就是那个例外),这个例外的上一个原型是 null。
也就是说,在默认情况下,JS 中的原型关系是特别扁平的:函数与函数之间是并列关系。
在需要的时候,我们可以修改函数默认的原型属性:将本来并列的原型关系,修改为串联的原型关系,修改方法也非常简单,就是将其中一个原型设置为另一个原型的实例对象。
这就带出第三个关系:实例的原型就是相应构造函数的原型属性。
不知是该恭喜,还是该怎样,总之阅读到该文的,你是第 人。每一次刷新,都是不同的自己。