CoffeeScript类导致空对象

时间:2015-08-10 17:29:58

标签: javascript node.js coffeescript electron

我有一个'a.coffee'文件,代码如下:

class Options
  options:
    # ...

  setOption: (name, value) ->
    # ...

  getOption: (name) ->
    # ...

# Export the Options class.
module.exports = Options

并提交'b.coffee':

Options = require './a'
console.log new Options()

当然,我预计当我运行b.coffee时,我会看到这个输出:

{
  options: ...,
  setOption: function (name, value),
  getOption: function (name)
}

但相反,我得到{}

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

你的期望是错误的。类级别的所有内容都在对象的原型中,因此给出了:

class C
  p: 6
  m: ->
o = new C

对象o将为空,因为没有实例变量,但如果您查看“类”(通过Object.prototype.constructor获取“类”和::以获取原型):

o.constructor::p

你会看到的东西。

如果添加一些实例变量(即实际上是对象的一部分):

class C
  constructor: -> @p = 6

然后你会在对象中看到它们:

c = new C
console.log c
# { p: 6 } will appear in the console