2016-01-20 49 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

這是我顯示統計信息的方法。 –