购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.4.2 支持__proto__ 注入

在ES2015 中,TC-39 决定向开发者开放直接向对象字面量注入__proto__ 的功能,这样做的意义在于开发者可以得到更高的对象操作权限,从而更加灵活地创建和操作对象。

假设我们需要为应用系统创建一个中心控制器,用于管理某一类数据或系统状态。在如今的JavaScript应用中,我们常常会以 事件 作为系统组件之间进行消息通讯的渠道,在Node.js的标准库中有一个名为events的库,其中便提供了EventEmitter这个用于实现 事件状态机 的类。EventEmitter中包含了如on、once、emit等用于对事件进行监听、触发的方法,别的组件会通过对这个中心管理器进行监听来完成消息传递。

而在一般情况下,EventEmitter类的使用方式是将其作为一个类的父类,以让子类继承EventEmitter。

但是在现在这个需求中,如果只是为了一个单一的实例而创建一个类,就显得太过冗余。在ES2015 标准之前,我们可能会通过mixin或merge等方法将一个EventEmitter类的实例的方法合并到一个对象中。

因为在ES2015 标准中,开发者允许直接向一个对象字面量注入__proto__ ,使其直接成为指定类的一个实例,而无须另外创建一个类来实现继承。对于我们这个需求,我们可以很简单地利用这个特性来实现。 9yh5CDk3ElZbRHIeTAAkFi15GsnSjwQZ1OgB6tc3DfZAkyBLjc2Aofac2QIaiKDU

点击中间区域
呼出菜单
上一章
目录
下一章
×