【发布时间】: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.prototype 是 undefined
编辑: 我知道我可以在这个例子中导出这个类,但我希望不要因为它是生产代码中的单例,我想确保它不会得到新的,但在我的单元测试中我想制作它的新副本,这样状态就不会在测试之间持续存在
【问题讨论】:
-
单例的字面定义是它只有一个实例...
-
另外,你永远不需要 Object.create。如果无法访问类来创建实例,则需要使用 require 或 import 关键字导入它。如果该类是单例,您只会获得对现有实例的引用,但那是因为它是单例...