2016-01-20 2 views
0

ИТАК нуб вопроса здесь, но то, что я пытаюсь сделать, выглядит примерно так:Параметр как объект?

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

Я пытаюсь получить параметр для функции, как элемент хочет получить в объекте, но когда я просто наберите:

this.stat 

Он выполняет поиск элемента (в объекте playerSats) называется стат, а не пункт под названием Intel (Какой был мой параметр). Пожалуйста помоги!

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 name и value к тому же значение ... Это означает, что вы даже не увидите разницу.

+0

Мне было интересно узнать об этом [stat] = stat, в этом случае вы ставите stat на stat, no (или лучше сказали это ["intel"] = "intel")? Я оставил это в своем ответе, потому что я думал, что это неправильный подход здесь;) – Icepickle

+0

Да, я видел, это правда, но я считаю более острой добавить его, а затем прокомментировать странность. :) – somethinghere

1

Доступ к свойствам объектов javascript с помощью синтаксиса object[propertyName].

Чтобы использовать его в вашей текущей настройки, было бы достаточно, чтобы использовать

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

Это мой метод отображения статистики. –

Смежные вопросы