javascript - 我可以控制 ES6 中类的创建方式吗?

标签 javascript oop ecmascript-6 es6-class

在Python3中,我可以使用魔术函数__new__,它在类初始化之前执行。这有助于我控制是创建新实例还是使用缓存中的某些实例。

只是一个简单的例子:

class Something:
    def __new__(..., someArgument):
       # was a class with someArgument initialized somewhere before?
       # is yes, then:
           return CACHE[someArgument]
       # if no, then:
           CACHE[someArgument] = Something(someArgument)
           return CACHE[someArgument]

那么,我在 ES6 中也可以这样做吗?或者我如何以其他方式控制类初始化?

此问题与 this one 不重复,因为我问是否可以在 JS 中找到一些功能,而上面的主题包含对此功能的讨论。

最佳答案

正如 Justinas 评论的那样,您可以查找 Javascript Factory

Javascript Factory 定义用于创建对象的接口(interface),但让子类决定实例化哪个类。 工厂方法让类将实例化推迟到子类。

您可以在一些地方查找:

Factory Method Design Pattern

Factory Functions with ES6

Calling Javascript Factory Method

希望有帮助!

关于javascript - 我可以控制 ES6 中类的创建方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56467138/

相关文章:

javascript - 在滚动时固定/修复 Vanilla Javascript 中的多个元素时的性能 [第 2 部分]

javascript - Babel polyfill 和 gulp

javascript - ES6 TemplateUrl 类似 Angular2

javascript - Rails、Ajax 和 bool 值;无法取消选中框

javascript - int 和 float 的正则表达式都不能正常工作

javascript - 如何删除某个元素后的第一个 <br>

sqlite - 图形家谱算法

c++ - 一个已经存在的注册表类的包装器类是一个好方法吗?

javascript - 返回异步 EmberJS 路由的 Promise 字典

c# - 在类上调用方法或作为参数传递给另一个类? C#