gpt4 book ai didi

coffeescript - 静态属性继承 CoffeeScript

转载 作者:行者123 更新时间:2023-12-04 04:42:03 31 4
gpt4 key购买 nike

让我们定义这个简单的代码:

class Foo
@foo = 'blah'
console.log(@foo)

class Bar extends Foo
constructor: () ->
console.log(@foo)

bar: () ->
console.log(@foo)

b = new Bar
b.bar()

结果是:

blah
undefined
undefined

如何访问继承类中的@foo

最佳答案

你真的想写

console.log(@constructor.foo)

Bar 的构造函数中。 (工作示例 here。)@constructor 指向类 (Bar),它继承了 Foo 的静态属性。这些属性不在实例上,这是 @ 从构造函数指向的内容。

(是的,它是 @constructor 而不是 @class 很奇怪,但那是因为 obj.constructor 是一种 JavaScript 主义,不是特殊的 CoffeeScript 语法。)

进一步说明:在类主体中,@ 指向类。在构造函数中,@ 指向实例。因此,明显的不一致。在我的书中关于类的章节中,我花了很多时间来讨论这个问题, CoffeeScript: Accelerated JavaScript Development .

关于coffeescript - 静态属性继承 CoffeeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10759751/

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