JavaScript: как создать переменную через функцию?

310
30 мая 2017, 02:24

Здравствуйте!

Подскажите, пожалуйста, можно ли в JavaScript создать и назначить переменной имя, переданной через аргумент функции?

Например:

function create_el(name){
    var div = document.createElement("div");
    div.id = name;
    document.getElementById("main").appendChild(div);
    //name = document.getElementById(div);  //name должен стать test
}
 create_el('test');
 console.log(test);   // созданный элемент

Т.е. нужно в функцию передать имя, а на выходе получить переменную с этим именем. Спасибо!

Answer 1

Создайте глобальную переменную в свойстве window. Например: function(a){window.a=a}. Далее просто используйте её.

Answer 2

Не засоряйте глобальную область видимости такими переменными. Просто возвращайте из функции созданный объект и работайте с ним.

function create_el(name){
    var div = document.createElement("div");
    div.id = name;
    document.getElementById("main").appendChild(div);
    return div;
}
console.log(create_el('test')); 
Answer 3
    name = 'test'
    window[name] = 'Wow!'
    console.log(test)

Но так делать нельзя. Смотри объяснения в ответе https://ru.stackoverflow.com/a/671895/223714

READ ALSO
Вызов функции посредством кнопки js

Вызов функции посредством кнопки js

Ребят, помогите с домашним заданием пожалуйстаКод почему не срабатывает

256
Плагин для javascript для sublime text 3

Плагин для javascript для sublime text 3

Добрый день! Подскажите, пожалуйста, плагин для автодополнения javascript, как в IDEЗдесь посоветовали плагин SublimeCodeIntel, я его установил, однако,...

270
Запись в объект data, vue.js

Запись в объект data, vue.js

Хочу реализовать подобие регистрации и авторизацииВо время сабмита регистрационной формы, собираю данные из ее полей и добавляю их в массив...

619