模块模式对象是否可以从构造模式对象继承?
(我对JavaScript和整个原型/继承概念有点新,所以如果这是一个愚蠢的问题,我很抱歉)
在我的代码库中,我得到了Revealing-Module-Pattern类型的对象的混杂,然后我也得到了使用构造器模式的对象(其中的实例变得更新)。
我也有一块代码(用constructor-type-pattern编写)提供了EventEmitter功能。 是否可以将此代码用作构造函数模式对象和显示模块模式对象的基类? 试图做到这一点甚至是有道理的?
首先,只有“constructor-type-pattern”对象遵循传统的继承形式,其中一个类继承另一个类,并且创建对象的实例。
“显示模块模式”只是一种封装数据并仅暴露部分数据的方式,当您使用该模式时,没有实例和类的概念。
如果你想重用这样一个“普通旧对象”的代码,你可以使用“原型继承”,这意味着你的子对象每次被询问它没有的成员时都会指向父对象。
在这两种情况下,您都可以使用Object.create
创建具有其他一些原型对象的对象,请查看MDN中的示例。
另外请注意,ES2015已经不存在了,它使得古典的OOP更加容易,并且以class
和extends
的形式提供了很好的本地语法糖。
上一篇: Can a Module Pattern object inherit from a Constructor Pattern object?