我有一个'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)
}
但相反,我得到{}
。
我该如何解决这个问题?
答案 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