我正在用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.
,因为.foo
是Player's
方法,而不是全局函数
playTurn(warrior) {
this.foo();
}
如果要不foo
使用.this
,则需要添加foo
功能,例如
function foo() {
}
class Player {
playTurn(warrior) {
foo();
}
playTurn(warrior) {
foo();
}
}
global.Player = Player;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句