Я создал одноэлементный класс, который хочу расширить. Он (половина) работает тем, что создает только один экземпляр класса, но свойства, добавленные в подкласс, не определены. Вот исходный синглтон:
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 не определен. Если я делаю то же самое для классов, не являющихся одноэлементными, они работают нормально. Спасибо.