gpt4 book ai didi

javascript - CoffeeScript 类导致空对象

转载 作者:行者123 更新时间:2023-11-28 19:04:45 25 4
gpt4 key购买 nike

我有一个文件“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)
}

但相反,我得到了 {}

我该如何解决这个问题?

最佳答案

你的期望是错误的。类级别的所有内容都位于对象的原型(prototype)中,因此:

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

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

o.constructor::p

你会看到一些东西。

如果您添加一些实例变量(即真正属于您的对象的一部分):

class C
constructor: -> @p = 6

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

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

关于javascript - CoffeeScript 类导致空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31925683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com