OPP在JavaScript的表现方式:原型
传统的OPP:类
● 对象(实例)由类实例化,类的功能类似于蓝图,通过蓝图来实现建筑(实例)
● 行为(方法)从类复制到所有实例
JS中的OPP:原型
● 对象与原型对象相连;
● 原型继承:原型包含的方法(行为)可被链接到该原型的所有对象访问;
● 行为委托给链接的原型对象;
举例:
Array.prototype 是我们在 Javascript 中创建的所有数组对象的原型,因此,所有数组都可以使用 map 方法!
在 JavaScript 中实现原型继承的 3 种方法
**我们究竟如何去创建原型呢?并且我们将如何把对象链接到原型上呢?我们如何在没有类的情况下去创建一个新对象呢?
- 构造函数
a. 从函数中创建对象的技术;
b. 这就是数组、地图或集合等内置对象的实际实现方式 - ES6 Classes
a. 构造函数语法的现代替代方案;
b. “语法糖”:在幕后,ES6 类的工作原理正是链接构造函数;
c. ES6 类的行为与 "经典 OOP "中的类不同 - Object.create()
a. 将对象链接到原型对象的最简单、最直接的方法**