gpt4 book ai didi

class - 在构造函数中调用静态方法——CoffeeScript

转载 作者:行者123 更新时间:2023-12-03 18:26:46 25 4
gpt4 key购买 nike

假设我要声明一个类 Game .

class @Game
constructor: ->
@id = Game.generateNewGameId() # <---
player1: null
player2: null
@generateNewGameId: -> "blahblah23"

在这里,我正在使用 generateNewGameIdGame.generateNewGameId() .

这是正确的方法还是有更好的方法?我试过使用 this::generateNewGameId()但范围不同。

最佳答案

如果你真的想要 generateNewGameId要成为一个类方法,那么你可以使用 @constructor 得到它:

Returns a reference to the Object function that created the instance's prototype. Note that the value of this property is a reference to the function itself [...]



所以像这样:
class Game
constructor: ->
@id = @constructor.generateNewGameId()
@generateNewGameId: ->
"blahblah23"

请注意,如果您将 Game 子类化,这将做正确的事情:
class C extends Game # With an override of the class method
@generateNewGameId: ->
'pancakes'

class C2 extends Game # or without

演示(请打开您的控制台): http://jsfiddle.net/ambiguous/Vz2SE/

关于class - 在构造函数中调用静态方法——CoffeeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11569036/

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