从 Coffeescript 的构造函数中调用方法

发布于 2024-11-28 07:51:29 字数 344 浏览 1 评论 0原文

是否可以从 Coffeescript 的构造函数中调用方法?
例如,

class Animal
  constructor: (@name) ->
    move()

  move: (meters) ->
    alert @name + " moved #{meters}m."

class Snake extends Animal
  move: ->
    alert "Slithering..."
    super 5

sam = new Snake "Sammy the Python"

这会生成以下错误消息“ReferenceError:未定义移动”

Is it possible to call a method from the constructor in Coffeescript?
e.g.

class Animal
  constructor: (@name) ->
    move()

  move: (meters) ->
    alert @name + " moved #{meters}m."

class Snake extends Animal
  move: ->
    alert "Slithering..."
    super 5

sam = new Snake "Sammy the Python"

This is generating the following error message "ReferenceError: move is not defined"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

微暖i 2024-12-05 07:51:29

这是可能的。但是,要引用该方法,您必须使用 @move()this.move(),名称 move() 本身不是足够的。

It is possible. However, to refer to the method you must use @move() or this.move(), the name move() itself is not enough.

暮色兮凉城 2024-12-05 07:51:29

陷阱警报:如果您发现 @ 或 this 并不引用构造函数中的新实例,请检查您是否记得使用 NEW 关键字:

instance = new Class()

NOT:

instance = Class()

这让我感到困惑,真的很令人沮丧。希望这对其他人有帮助!

Gotcha Alert: if you find that @ or this does NOT refer to the new instance in a constructor, check you remembered to use the NEW keyword:

instance = new Class()

NOT:

instance = Class()

This caught me out and was really frustrating. Hope this helps someone else!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文