Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.06.2010, 15:31
Новичок на форуме
Отправить личное сообщение для LedVisel Посмотреть профиль Найти все сообщения от LedVisel
 
Регистрация: 05.06.2010
Сообщений: 3

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

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"

это возможно?
Ответить с цитированием
  #2 (permalink)  
Старый 05.06.2010, 15:48
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,506

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

for(var i in obj) eval('var ' + i + ' = ' + преобразуем_в_json(obj[i]));
Ответить с цитированием
  #3 (permalink)  
Старый 05.06.2010, 15:51
Новичок на форуме
Отправить личное сообщение для LedVisel Посмотреть профиль Найти все сообщения от LedVisel
 
Регистрация: 05.06.2010
Сообщений: 3

кстати да, спасибо, не подумалось про eval. на крайний случай оставим как вариант.
Ответить с цитированием
  #4 (permalink)  
Старый 05.06.2010, 18:48
Интересующийся
Отправить личное сообщение для qwoiejfoiej Посмотреть профиль Найти все сообщения от qwoiejfoiej
 
Регистрация: 02.06.2010
Сообщений: 21

А чем не подходит простой with(obj)?
Ответить с цитированием
  #5 (permalink)  
Старый 05.06.2010, 23:31
Новичок на форуме
Отправить личное сообщение для LedVisel Посмотреть профиль Найти все сообщения от LedVisel
 
Регистрация: 05.06.2010
Сообщений: 3

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
текущий DOM-элемент документа в ИЕ hmel Events/DOM/Window 1 11.01.2010 00:50
Как по событию вызвать метод определенного экземпляра объекта jvs jQuery 3 24.12.2009 15:04
помогите с положением свободно позиционируемого объекта Newgen Элементы интерфейса 16 28.07.2009 08:41
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 18:00
Не работает перебор свойств объекта BANick Общие вопросы Javascript 1 16.09.2008 21:46