#javascript #object
#javascript #объект
Вопрос:
после 1 часа попыток выяснить, как я могу заставить это работать, я сдался и решил спросить здесь.
Итак, я создал объект :
var potion1 = {
color: "red",
effect: "strength",
duration: 1 " minute",
price: 10,
test: function() {
return "test good"
}
}
И то, что я делаю, это запрашиваю ввод и показываю соответствующий текст.
var x = prompt();
x = document.getElementById("potions").innerHTML="Potion 1 : " potion1[x];
Проблема в том, что все отлично работает с цветом, эффектом, продолжительностью, ценой, но возврат теста function() { return "test good" }
Если я использую x = document.getElementById("potions").innerHTML="Potion 1 : " potion1[x]();
test, работает нормально, но все остальные ничего не возвращают
Поэтому мне было интересно, возможно ли, чтобы x работал с цветом, эффектом, продолжительностью, ценой и тестированием.
Комментарии:
1. простым ответом было бы превратить все в функцию
2. Вы пытались сделать условное присвоение innerHTML, например, с
innerHTML="Potion 1 : " typeof potion1[x] == 'function' ? potion1[x]() : potion1[x]
помощью ? Это так называемый условный (троичный) оператор. Вы можете узнать больше об этом по адресу developer.mozilla.org/en-US/docs/Web/JavaScript/Reference /…
Ответ №1:
Вы можете создать test
средство получения.
var potion1 = {
color: "red",
effect: "strength",
duration: 1 " minute",
price: 10,
get test() {
return "test good"
}
}
Ответ №2:
простым ответом было бы превратить все в функцию
или вы могли бы использовать троичный оператор:
x = document.getElementById("potions").innerHTML="Potion 1 : "
(typeof potion1[x] != 'function' ? potion1[x] : potion1[x]());