【问题标题】:Coffeescript create new instance of a class given an object of that class给定该类的对象,Coffeescript 创建该类的新实例
【发布时间】:2017-07-01 00:47:30
【问题描述】:

在咖啡脚本中,我有一个从类创建的对象。后来,我不再可以访问该类,但我想创建一个新实例。例如:

# MySingleton.coffee

class MySingleton
module.exports = new MySingleton

然后:

# MySingletonTests.coffee

mySingleton = require './MySingleton'

# testSingleton = ???
# I would like to create a new MySingleton here

我想我想在这里使用 JS 的 Object.create 之类的东西,但是如果我调用 Object.create(mySingleton) 它似乎只是引用了旧对象,而 mySingleton.prototypeundefined

编辑: 我知道我可以在这个例子中导出这个类,但我希望不要因为它是生产代码中的单例,我想确保它不会得到新的,但在我的单元测试中我想制作它的新副本,这样状态就不会在测试之间持续存在

【问题讨论】:

  • 单例的字面定义是它只有一个实例...
  • 另外,你永远不需要 Object.create。如果无法访问类来创建实例,则需要使用 require 或 import 关键字导入它。如果该类是单例,您只会获得对现有实例的引用,但那是因为它是单例...

标签: javascript coffeescript


【解决方案1】:

事实证明new myInstance.constructor() 完全符合我的要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 2021-08-03
    相关资源
    最近更新 更多