我创建了一个要扩展的单例类。它(一半)的工作原理是它只创建类的单个实例,但添加到子类的属性是未定义的。这是原始单例:
class Singleton
_instance = undefined
@getInstance: ->
if _instance is undefined
console.log 'no instance exists, so create one'
_instance = new _Singleton()
else
console.log 'an instance already exists.'
class _Singleton
constructor: ->
console.log 'new singelton'
module.exports = Singleton
这是子类:
Singleton = require('./singleton')
class Stinky extends Singleton
constructor: ->
var1 : 'var1'
module.exports = Stinky
现在,如果我在我的节点应用程序中使用以下内容:
Stinky = require './stinky'
thing1 = Stinky.getInstance()
thing2 = Stinky.getInstance()
console.log "Thing var1: #{thing1.var1}"
getInstance() 方法的行为符合预期,但 var1 未定义。如果我在非单身课程上做同样的事情,他们工作得很好。谢谢。