参数作为对象项?

时间:2016-01-20 12:41:12

标签: javascript function object methods this

好的,这里的noob问题,但我尝试做的事情看起来像这样:

var statShow = function(stat) {
  playerSats.stat = stat;
  console.log("Your "+stat+" is "+this.(this.stat)+"!");
};
playerStats.statShow = statShow;
playerStats.statShow("intel");

我试图获取函数的参数作为要在对象中检索的项目,但是当我只是输入:

this.stat

它搜索名为stat的项目(在对象playerSats中),而不是名为intel的项目(这是我的参数)。请帮忙!

P.S。这是我的目标:

var playerStats = {
  playerLvl: 1,
  power: strength,
  intel: intelligence,
  sped: speed
};

3 个答案:

答案 0 :(得分:2)

试试这个:

 var statShow = function(stat) {
      console.log("Your "+stat+" is "+this[stat]+"!");
 };
 playerStats.statShow = statShow;
 playerStats.statShow("intel");

此外,你为什么这样做:playerSats.stat = stat;

答案 1 :(得分:1)

只需对象使用括号表示法:

var statShow = function(stat) {
  this[stat] = stat;
  console.log("Your "+stat+" is "+this[stat]+"!");
};
playerStats.statShow = statShow;
playerStats.statShow("intel");

我很困惑你为什么要这样做,因为你刚刚将property namevalue设置为相同的值......这意味着你甚至看不出差别

答案 2 :(得分:1)

您可以使用object[propertyName]样式语法访问javascript对象的属性。

要在当前设置中使用它,使用

就足够了
var statShow = function(stat) {
  console.log("Your "+stat+" is "+this[stat]+"!");
};

playerStats.statShow = statShow;
playerStats.statShow("intel");