2017-07-25 71 views
1

在这里开始。如何更改对象内的参数?

var player() = { 
isDrunk: false 
} 

如何在玩家使用物品“啤酒”后将isDrunk设置为true? (完全虚构的例子)

+1

你可以阅读关于此JavaScript对象基础知识:https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Basics – yuriy636

回答

1

你问它之前,因为对JavaScript对象的文档是无处不在,你应该Google提问...但是...

var player = { 
    myFirstValue: true, 
    mySecondValue: false 
}; 

player.myFirstValue = false; 
3

具体回答你的问题,你会只是做像player.isDrunk = true

所以,你可以有类似

var player = { 
    leftHanded: false, 
    rightHanded: true, 
    isDrunk: false 
}; 

然后

function drinkBeer(player) { 
     player.isDrunk = true; 
} 

然后您可以根据需要通过你的球员的drinkBeer功能。或者你可以把功能的播放器对象中,如果你想每一个玩家有一个drinkBeer()功能,他们可以使用通过调用player.drinkBeer()

改变自己isDrunk属性,它应该是这样的:

var player = { 
    leftHanded: false, 
    rightHanded: true, 
    isDrunk: false, 
    drinkBeer: function() { 
     isDrunk = true; 
    } 
}; 
0

可以使用开关或if语句,你选择的任何设置isDrunk的价值无论是。但在此之前,请看看创建对象的语法或方法。

var player = {isDrunk:false, hadBeer:false} 
    if (player.hadBeer) { 
    player.isDrunk = true; 
    } else { 
    player.isDrunk = false; 
    } 
1

它看起来像你想创建一个对象,可以调用一个动作来“喝”一杯啤酒。以下是较新的类语法(ES6),它在旧版浏览器中未得到广泛支持,但值得研究。

class Player { 
    constructor(){ 
     this.isDrunk = false; 
    } 

    useBeer(){ 
     this.isDrunk = true; 
    } 

    isDrunk(){ 
     return this.isDrunk; 
    } 
} 

var player = new Player(); 
player.useBeer(); 
console.log(player.isDrunk()); // true 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes

+1

但文件说, IE不支持class关键字。它值得使用吗? – Prabhakaran

+1

@Prabhakaran正如我在答复中提到,此语法不广泛支持旧版浏览器。然而,预编译/ transpiling JavaScript是一种很常见的/有益的做法,这将允许使用较新的语法(代码维护,糖)不失ES5的兼容性。我建议学习较新的语法尽可能,因为想法是,语言改善和现代浏览器都在努力支持这些更新。完全公平的问题,虽然 – veratti

+0

感谢您的解释 – Prabhakaran