Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Задание имени переменной из другой (https://javascript.ru/forum/misc/8911-zadanie-imeni-peremennojj-iz-drugojj.html)

vvsh 20.04.2010 14:11

Задание имени переменной из другой
 
Здравствуйте, есть такое:
var vars = 'name';

как мне создать переменную, чтобы ее имя было значением переменной варс?
заранее спасибо

Skipp 20.04.2010 14:18

Используй массивы.

vvsh 20.04.2010 16:50

а с переменными никак?

Skipp 20.04.2010 16:53

а как ты думаешь:)

Приведи часть кода. Скорее всего проблема в её понимании, может помогу.

vvsh 20.04.2010 17:12

думаю что нет, просто например в PHP, там можно задать переменную так
$vars = 'name';

$$vars = 'sample';

в коде у меня передается в функцию значение
function load(a, m) {
if(a==1) var /*вот сюда  значение m*/ = 'add';
else if(a==2) var /*вот сюда  значение m*/ = 'edit';
}

load(1, 'имя новой переменной')

Octane 20.04.2010 17:22

function load(a, m) {
    var vars = {};
    if (a == 1)  {
        vars[m] = "add";
    }
    else if (a == 2) {
        vars[m] = "edit";
    }

    …

}

Если нужно обращаться к глобальной переменной, то:
function load(a, m) {
    if (a == 1)  {
        window[m] = "add";
    }
    else if (a == 2) {
        window[m] = "edit";
    }
    
    …

}

vvsh 20.04.2010 17:32

Octane, да, но это опять же будет массив

Skipp 20.04.2010 17:34

ты что массивоненавистник?=)
Почему ты так их боишься?
Нельзя сделать того что ты хочешь, не ль зя:)
Бери массивы и вперёд)

Skipp 20.04.2010 17:37

Создавай допустим атрибут к боди с именем каким хочешь и значением)

exec 20.04.2010 18:44

var vars = 'name';
window[vars] = value;

Nekromancer 20.04.2010 23:09

Цитата:

Сообщение от exec (Сообщение 52346)
var vars = 'name';
window[vars] = value;

Угу, угу :write: а локально никак, ибо в scope не залезешь.. так что хэш массивы.. по другому никак..

П.С. Это не php ;)

vvsh 21.04.2010 01:14

та в Php всё просто и без заморочек, почему разработчикам js нельзя было сделать синтаксис как в php, слава богу, что и так много похоже.

Всем спасибо, придется делать массив...

Gvozd 21.04.2010 01:28

Цитата:

Сообщение от vvsh
та в Php всё просто и без заморочек, почему разработчикам js нельзя было сделать синтаксис как в php, слава богу, что и так много похоже.

бог мой, сделайте мои глаза разувидеть это.
неужели он это серьезно написал?!

DooMer 21.04.2010 17:38

хм, а если так
var a="b";
eval("var " + a + ";");

не проверял, но теоретически должно

Nekromancer 21.04.2010 20:32

(function(){
var a = "b";
eval("var " + a + " = 'test';");
alert(b)
}());


Правда работает, но это извращение какое то уже.. правда если сильно хочется, можно и так.. но уже обратно переменную в качестве строки не получите.. в отличии от метода с объектом.

x-yuri 21.04.2010 21:41

vvsh, ты б рассказал, зачем тебе создавать переменную с заранее неизвестным именем? Иначе вот ответ на твой вопрос

Цитата:

Сообщение от vvsh
та в Php всё просто и без заморочек, почему разработчикам js нельзя было сделать синтаксис как в php, слава богу, что и так много похоже.

потому что php - это не js, потому что js создавали разработчики js, а не php. И, в конце концов, если только ты видишь заморочки, это обычно означает, что реальные заморочки - это то, что ты видишь, эти свои заморочки. И вообще, не надо писать на js как будто это php ;)

vvsh 22.04.2010 00:06

Цитата:

vvsh, ты б рассказал, зачем тебе создавать переменную с заранее неизвестным именем? Иначе вот ответ на твой вопрос
в моем скрипте виртуальной клавиатуры есть кнопки caps и shift и есть функция которая включает/выключает капс и шифт, вот я передаю название той клавиши которая была нажата, капс/шифт, и мне надо в глобальную переменную в зависимости от названия загонять значение, а проверки я делать не хочу

Цитата:

И вообще, не надо писать на js как будто это php
на мой стиль кода намекаете что-ли?

просто PHP мне нравится, обычно я пишу только на нем, а javascript это уже у меня как аякс

x-yuri 22.04.2010 01:18

Цитата:

Сообщение от vvsh
и мне надо в глобальную переменную в зависимости от названия загонять значение, а проверки я делать не хочу

глобальная переменная не одна?

Цитата:

Сообщение от vvsh
на мой стиль кода намекаете что-ли?

я сказал то, что хотел сказать. На стиль кодирования я не намекал, но вряд ли ты им можешь похвастаться

Цитата:

Сообщение от vvsh
просто PHP мне нравится, обычно я пишу только на нем, а javascript это уже у меня как аякс

но это ведь не причина ожидать от js, чтобы он был php. Иначе у него было бы другое название ;)

vvsh 22.04.2010 19:48

Цитата:

глобальная переменная не одна?
не, в этом и дело

Цитата:

я сказал то, что хотел сказать. На стиль кодирования я не намекал, но вряд ли ты им можешь похвастаться
а у меня смесь php и js

x-yuri 22.04.2010 22:22

Цитата:

Сообщение от vvsh
не, в этом и дело

как ответили выше:
var varName = 'name'; 
window[varName] = value;

а то, что в php к глобальным переменным через $GLOBALS[$var_name] обращаться тебя не смущает?
p.s. хотя, возможно, было бы лучше не использовать глобальные переменные

Цитата:

Сообщение от vvsh
а у меня смесь php и js

ну и ССЗБ ;)

vvsh 23.04.2010 00:58

Цитата:

p.s. хотя, возможно, было бы лучше не использовать глобальные переменные
в php я ими и не пользуюсь...

x-yuri 23.04.2010 01:43

Цитата:

Сообщение от vvsh
в php я ими и не пользуюсь...

а в javascript они тебе зачем?

vvsh 23.04.2010 15:48

чтобы сделать виртуальную клавиатуру нормально рабочей

x-yuri 24.04.2010 23:30

Цитата:

Сообщение от vvsh
чтобы сделать виртуальную клавиатуру нормально рабочей

всегда можно обойтись без глобальных переменных, но глобальные переменные - для чего-то, к чему должны иметь доступ разные части программы. Твои же глобальные переменные определяют состояние виртуальной клавиатуры и доступ к ним (если он нужен) должен быть через виртуальную клавиатуру. У тебя же на страничке есть что-нибудь, кроме виртуальной клавиатуры?


Часовой пояс GMT +3, время: 07:42.