Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   импорт объекта в текущий скоп (https://javascript.ru/forum/misc/9786-import-obekta-v-tekushhijj-skop.html)

LedVisel 05.06.2010 16:31

импорт объекта в текущий скоп
 
Приветствую. подскажите, как сделать следующее:

var obj = 
{
   var1: "hello",
   var2: "medved"
}

function test()
{
   // вот тут локальным переменным присваиваем
   // значения объекта
   var var1 = obj.var1
   var var2 = obj.var2
   
   alert(var1 + var2)
}


в функции локальным переменным присваиваются значения из объекта. в примере это сделано в лоб, а нужно что-то вроде
for(var i in obj) window[i] = obj[i]

проблема в том что, вместо window[i] должно быть нечто, что сделает переменные объекта локальными, т.е. чтоб можно было обратиться var1, var2 как к локальной переменной.

this[i] не походит, т.к. все равно придется обращаться к "this.var1"

это возможно?

micscr 05.06.2010 16:48

Такое только пока могу предложить:

for(var i in obj) eval('var ' + i + ' = ' + преобразуем_в_json(obj[i]));

LedVisel 05.06.2010 16:51

кстати да, спасибо, не подумалось про eval. на крайний случай оставим как вариант.

qwoiejfoiej 05.06.2010 19:48

А чем не подходит простой with(obj)?

LedVisel 06.06.2010 00:31

гениально :thanks: всем подходит, спасибо.
просто почему-то думалось что должно быть как-то сложнее, что должен быть аналог window[property] для локального скопа.


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