gpt4 book ai didi

javascript - 如何在 ecmascript 6 的 warriorjs 游戏中定义方法?

转载 作者:行者123 更新时间:2023-11-30 10:02:55 25 4
gpt4 key购买 nike

我正在使用 warriorjs 学习 nodejs游戏。它给我一个简单的类:

class Player {
playTurn(warrior) {
}
}
global.Player = Player;

所以我想为 Player 类创建一个方法。例如:

class Player {
playTurn(warrior) {
foo();
}

playTurn(warrior) {
foo();
}

foo() {}
}
global.Player = Player;

我认为这是在 js 中创建方法的方法,但它给出了错误:

undefined:25
foo();
^
ReferenceError: foo is not defined
at Player.playTurn (eval at loadPlayer (/usr/lib64/node_modules/warriorjs/lib/Level.js:155:94), <anonymous>:25:7)
at Warrior.playTurn (/usr/lib64/node_modules/warriorjs/lib/units/Warrior.js:38:24)
at Warrior.prepareTurn (/usr/lib64/node_modules/warriorjs/lib/units/Base.js:280:12)
at /usr/lib64/node_modules/warriorjs/lib/Level.js:177:23
at Array.forEach (native)
at Level.play (/usr/lib64/node_modules/warriorjs/lib/Level.js:176:36)
at Game.playCurrentLevel (/usr/lib64/node_modules/warriorjs/lib/Game.js:130:30)
at Game.playNormalMode (/usr/lib64/node_modules/warriorjs/lib/Game.js:120:16)
at Game.start (/usr/lib64/node_modules/warriorjs/lib/Game.js:70:14)
at Runner.run (/usr/lib64/node_modules/warriorjs/lib/Runner.js:42:18)

谁能帮我弄清楚?

最佳答案

使用this.,因为.fooPlayer的方法,不是全局函数

playTurn(warrior) {
this.foo();
}

如果你想在没有.this的情况下调用foo,你需要添加foo函数,像这样

function foo() {

}

class Player {
playTurn(warrior) {
foo();
}

playTurn(warrior) {
foo();
}
}

global.Player = Player;

关于javascript - 如何在 ecmascript 6 的 warriorjs 游戏中定义方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30669576/

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