Tôi đã tạo một lớp đơn mà tôi muốn mở rộng. Nó (một nửa) hoạt động ở chỗ nó chỉ tạo ra một cá thể của lớp, nhưng các thuộc tính được thêm vào lớp con là không xác định. Đây là singleton gốc:Cách tạo lớp con coffeescript singleton
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
Và đây là lớp con:
Singleton = require('./singleton')
class Stinky extends Singleton
constructor: ->
var1 : 'var1'
module.exports = Stinky
Bây giờ nếu tôi sử dụng những điều sau đây trong ứng dụng nút của tôi:
Stinky = require './stinky'
thing1 = Stinky.getInstance()
thing2 = Stinky.getInstance()
console.log "Thing var1: #{thing1.var1}"
phương pháp getInstance() xử như mong đợi, nhưng var1 là không xác định. Nếu tôi làm điều tương tự trên các lớp không singleton họ làm việc tốt. Cảm ơn.
Có phải 'var1: 'var1'' là lỗi đánh máy không? Nếu nó là 'var1 = 'var1'' hoặc thực sự' @ var1 =' var1''? – Sandro