Подтвердить что ты не робот

Как отобразить значение значения другой переменной?

var foo = "bar"
var bar  = "realvalue";

Можно ли напечатать значение bar с помощью foo?

4b9b3361

Ответ 1

Подход 1: глобальная переменная

var foo = "bar";
var bar  = "realvalue";
alert(window[foo]);

ИЛИ

Подход 2: пространство имен
Разделите js на пространства имен

var namespace = {
 foo : "bar",
 bar : "realvalue"
};
alert(namespace[namespace.foo]);

Ответ 2

Да, вы можете сделать что-то подобное с помощью eval

var foo = "bar";
var bar  = "realvalue";
alert(eval(foo));

EDIT: Кажется, многие люди против использования функции eval(). Мой совет перед его использованием прочитал этот вопрос: Почему использование JavaScript eval-функции плохое?

Затем, как только вы поймете риски, которые можете решить сами, если вы хотите использовать их.

Ответ 3

Если это глобальная переменная, вы можете использовать window[foo]

Ответ 4

Не делайте подобные конструкции с неглобальными переменными, просто используйте любые переменные, которые вы в противном случае могли бы плавать.

var myscope = {
    bar: 'realvalue'
},
foo = 'bar';

alert(myscope[foo]);

Btw, вышеизложенное не полагается на поведение браузеров по умолчанию, чтобы также регистрировать глобальные переменные в объекте window, заставляя его работать с такими вещами, как Node.js.

Ответ 5

Глобальные переменные определены в объекте window, поэтому вы можете использовать:

var bar = "realvalue";
alert(window["bar"]);

Ответ 6

var foo = "bar";
var bar  = "realvalue";
foo=bar;
console.log(foo);
alert(foo);

Ответ 7

 var foo = "bar";
 var bar  = "realvalue";
 alert(eval(foo));

Ответ 8

Да, через eval. Но, к сожалению, не без eval, что есть плохая идея для использования.