gpt4 book ai didi

class - 在 CoffeeScript 中,在类级别声明的实例属性可以引用其定义中的另一个实例属性吗?

转载 作者:行者123 更新时间:2023-12-02 08:39:09 25 4
gpt4 key购买 nike

在 CoffeeScript 中,如果我在类构造函数中定义实例属性,该属性可以引用其定义中的其他实例属性,例如:

class Foo
constructor: (data) ->

@One = 1

@Two = @One + 1

但是在类级别声明的实例属性又如何呢?以下不起作用:

class Foo

One: 1

Two: @One + 1

在这种情况下,@符号指的是“类”本身,而不是实例。同样,简单地删除@也是行不通的。

有没有一种方法可以让在类级别声明的一个实例属性可以引用其定义中的另一个实例属性?

最佳答案

当你这样说时:

class Foo
one: 1

您正在 Foo 的原型(prototype)上设置 one,因此您只需查看 @ 的原型(prototype)即可返回到位置一个是:

class Foo
one: 1
two: @::one + 1

Demo

请注意,这甚至适用于子类,因此您可以这样做:

class Pancakes extends Foo
three: @::two + 1

你会得到预期的三个。

关于class - 在 CoffeeScript 中,在类级别声明的实例属性可以引用其定义中的另一个实例属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12965633/

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