2016-01-20 52 views
0

好了,所以noob问题在这里,但我想要做看起来是这样的:作为对象项目的参数?

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

我试图获取参数的功能的项目要在对象检索,但当我只需键入:

this.stat 

它寻找一个叫项(在对象playerSats)统计,不叫英特尔项目(这是我的参数)。请帮忙!

P.S.这是我的目标:

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

回答

1

只需用括号标记的对象:

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

我很困惑,为什么你会想这样做,但是,就像你刚才已经确立了自己property namevalue相同的价值......这意味着你甚至不会看到差异。

+0

我想知道在这个[stat] = stat中,在这种情况下,你会将stat设置为stat,否(或者更好的说这个[“intel”] =“intel”)?我把它留在了我的答案中,因为我认为这是错误的方法;) – Icepickle

+0

是的,我看到了,这是真的,但我觉得它更加辛辣,增加它,然后评论奇怪。 :) – somethinghere

1

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

要在当前设置中使用它,这将是足够使用

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

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

试试这个:

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

而且你为什么这样做:playerSats.stat = stat;

+0

这是我显示统计信息的方法。 –