Javascript 在某些情况下无法重置属性,vue.js
所以,我在Vue.js中有一个“迷你游戏”,让你“战斗”。 我试图让它在某人“死亡”后,游戏宣布胜利者,然后问你是否想再玩一次。 在那之前一切都很好,但当我试图让它在你点击后,你想再次玩,重置你的生命值和'怪物'的生命值回到100,它只是不起作用。 这是我的代码,我重置了所有内容,它运行,我放置了控制台日志,但它什么也不做:Javascript 在某些情况下无法重置属性,vue.js,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,所以,我在Vue.js中有一个“迷你游戏”,让你“战斗”。 我试图让它在某人“死亡”后,游戏宣布胜利者,然后问你是否想再玩一次。 在那之前一切都很好,但当我试图让它在你点击后,你想再次玩,重置你的生命值和'怪物'的生命值回到100,它只是不起作用。 这是我的代码,我重置了所有内容,它运行,我放置了控制台日志,但它什么也不做: checkWinner: function() { if(this.mHp <= 0) { if (confirm('You won! Pla
checkWinner: function() {
if(this.mHp <= 0) {
if (confirm('You won! Play again?')) {
this.startGame();
} else {
this.gameIsActive = false;
}
return true;
} else if (this.pHp <= 0) {
if (confirm('You lost! Play again?')) {
this.startGame();
} else {
this.gameIsActive = false;
}
return true;
}
return false;
}
checkWinner:function(){
如果(this.mHp问题出在startGame()
函数中,您的pHp
和mHp
变量未使用this
设置
你有:
pHp = 100;
mHp = 100;
应该是:
this.pHp = 100;
this.mHp = 100;
我通过使用console.log()
找到了这一点,它帮助我确定startGame()
正在启动,经过仔细检查,我发现您的数据没有正确更新。在StartName方法中,您正在将属性设置为新值,但忘记了这一点。
对于livespan值(pHp,mHp)我认为在hp参数之前添加“this”后应该可以工作
startGame: function() {
this.gameIsActive = true;
this.pHp = 100;
this.mHp = 100;
},
Ohhhhhhhhhh我明白了!谢谢!我在砸我的头。但,为什么我们必须用这个关键字来设置它们,因为我们在一个方法中?例如,若我用v-on:点击HTML页面,我就不必键入这个。@tempackt4stack我知道在模板中你们不需要这个,因为我假设上下文已经定义了在实例方法中,我认为原因在于区分局部变量和应用程序数据道具。不过,我会仔细检查文档以确保:)