什么是原型

原型在开发中无处不在,在深入介绍原型之前,我们先了解一下对象的基本概念。

这里先将对象理解为数据和行为的集合。开发中,很多时候会希望对象能够“共享”“复用”某些行为,这就引入了“原型”的概念。

为了更直观地理解原型和原型链,我们暂时抛开 JavaScript 的具体语法,使用伪代码来描述对象的定义、继承和复用的过程。

定义结构与行为

Element 结构:
    - child: null
    - parent: null

ElementFunctions 方法结构:
    - append(方法)

Text 结构:
    - child: null
    - parent: null
    - classList: []
    - 更多属性...

上面伪代码定义了三个个结构对象

关联对象与方法

为了让 Element 能够调用 ElementFunctions 中的方法。

这里把 ElementFunctionsElement 对象建立关联,使其能够访问这些方法:

JavaScript 中通过(__proto__)属性用来实现这一目的的。

Element 关联 ElementFunctions

element = Element { child: ..., parent: ... };
element.append(...);

“继承扩展”

为了让 Test 可以访问 Element 的方法, 我们需要实现一种继承机制。

可以将 ElementFunctions 关联到 Text 对象 如示例1。

示例 1: