拡張したいシングルトンクラスを作成しました。それは(半分)クラスの単一のインスタンスのみを作成するという点で機能しますが、サブクラスに追加されたプロパティは未定義です。元のシングルトンは次のとおりです。
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は未定義です。シングルトン以外のクラスでこれと同じことを行うと、正常に機能します。ありがとう。