Как создать подкласс singleton для coffeescript

Я создал одноэлементный класс, который хочу расширить. Он (половина) работает тем, что создает только один экземпляр класса, но свойства, добавленные в подкласс, не определены. Вот исходный синглтон:

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 не определен. Если я делаю то же самое для классов, не являющихся одноэлементными, они работают нормально. Спасибо.

6
задан Brad Roodt 13 April 2012 в 14:09
поделиться