原型在开发中无处不在,在深入介绍原型之前,我们先了解一下对象的基本概念。
这里先将对象理解为数据和行为的集合。开发中,很多时候会希望对象能够“共享”“复用”某些行为,这就引入了“原型”的概念。
为了更直观地理解原型和原型链,我们暂时抛开 JavaScript 的具体语法,使用伪代码来描述对象的定义、继承和复用的过程。
Element 结构:
- child: null
- parent: null
ElementFunctions 方法结构:
- append(方法)
Text 结构:
- child: null
- parent: null
- classList: []
- 更多属性...
上面伪代码定义了三个个结构对象
Element 结构 包含子元素和父元素ElementFunctions 方法结构(描述 Element 结构 可以产生的行为)
Text 结构,在 Element 结构上又增加了一些属性。为了让 Element 能够调用 ElementFunctions 中的方法。
这里把 ElementFunctions 与 Element 对象建立关联,使其能够访问这些方法:
JavaScript 中通过(__proto__)属性用来实现这一目的的。
Element 关联 ElementFunctions
element = Element { child: ..., parent: ... };
element.append(...);
为了让 Test 可以访问 Element 的方法, 我们需要实现一种继承机制。
可以将 ElementFunctions 关联到 Text 对象 如示例1。
示例 1: