如何在 JS 中打造属于自己的原型链

为什么要打造自己的原型链?通常时候,我们会说是为了实现继承。

但我觉得这个并不准确,虽然 ES6 中有了 class 关键词,但这仅仅只是一个语法糖,相当于把原来的「原型链链接过程封装」。

在我目前的认知里,打造自己的原型链是 JS 提供的「复用代码」的方法。

其实每一门语言都提供了复用代码,也就是建立自己的 ADT 的工具。面向对象不过是一种编程范式,但不得不说,它在真实的业务场景中很有用。你看,ES6 也提供了语法糖,方便大家提高生产力。

但我依然觉得搞懂 JS 的原型链很重要,也很有趣。毕竟这是 JS 中最具特色的一个部分。

在最开始接触原型链的过程中,着实蒙了很长时间。光是搞懂原型链是个什么鬼就前后持续了好几天。满满的开始有感觉,当然要记录下来。在上一篇理论基础上,这篇是实践:

具体如何打造呢?挺简单,就是新建一个对象实例,这个对象实例本身有自己的原型,然后再把这个对象实例赋值给某个想要链接到对象实例的原型之后的原型,之后再把这个子原型的构造函数复位。

记住,核心依然是该清楚构造函数,原型对象,实例对象之间的三角关系。

在打造自己的原型链中,领悟到关键的一点:原型对象本身的类型是 object 类型,用构造函数构造的实例也是 object 类型。也就是说,原型对象可以接受一个 object 类型的赋值。也就是说,通过接受一个实例对象的赋值,实现原型链的链接。


不知是该恭喜,还是该怎样,总之阅读到该文的,你是第 人。每一次刷新,都是不同的自己。