(我对javascript和整个原型/继承概念有点陌生,所以如果这是一个愚蠢的问题,我很抱歉)
在我的代码库中,我有一个混杂的mishmash Module-Pattern类型的对象,然后我还有一些使用Constructor-Pattern的对象(其中的实例是newed-up)。
我还有一个提供EventEmitter功能的代码块(用构造函数类型模式编写)。可以将此代码用作构造函数模式对象和揭示模块模式对象的基类吗?尝试这样做有意义吗?
发布于 2017-02-04 09:04:10
首先,只有“构造函数-类型-模式”对象遵循传统的继承形式,其中一个类继承另一个类,您创建对象的实例。
“揭示-模块-模式”只是一种封装数据并只公开部分数据的方式,当你使用该模式时,并没有实例和类的概念。
如果你想重用来自这样一个“普通旧对象”的代码,你可以使用"prototypal inheritance",这仅仅意味着每当你的子对象被要求提供一个它没有的成员时,它就会指向父对象。
在这两种情况下,您都使用Object.create来创建具有其他对象作为原型的对象,请查看examples at MDN。
还要注意的是,ES2015已经过时了,它以class和extends的形式提供了漂亮的native syntactic sugar,使得传统的OOP变得更容易。
https://stackoverflow.com/questions/42034951
复制相似问题