JS: Как избавиться от нехорошего eval в цикле? #779743


#0 by D_Pavel
Перебираются все свойства одного объекта и если тип свойства - функция, то эта функция записывается в функцию другого объекта, например: t.moyaFunkciya = function{     o.moyaFunkciya.apply(o, arguments); }; вот код который нужно исправить:     for(var i in o){         if(typeof o[i] == 'function'){             eval("t."+i+" = function{o."+i+".apply(o, arguments);};");         }     } Как избавиться от eval в данном цикле?
#1 by Лефмихалыч
а что мешает использовать t[i] и o[i]?
#2 by D_Pavel
Малость упростил для понимания, но все равно eval остался: for(var i in o){     t[i] = function {         eval("o." + i + ".apply(o, arguments);");     }; }
#3 by Лефмихалыч
так что мешает-то? с t получилось, значит и с o тоже должно
#4 by D_Pavel
то что переменная i после выхода из цикла будет не правильная. И для всех функция одна и та же.
#5 by Лефмихалыч
а, пля, это же жабаскрипт...
#6 by D_Pavel
а ты про что подумал?
#7 by Неверный Параметр И
Фабричной функцией. Которая вернет нужную функцию, построенную в своем отдельном контексте. Что, на stackoverflow не подсказали еще?
#8 by D_Pavel
а что, должны были? Спасибо, темку можно грохнуть.
#9 by Мэс33
>>>moyaFunkciya Мои глаза, хнык хнык.
#10 by D_Pavel
Ты еще не видел как я переменные назову.
Тэги: Веб-мастеринг
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С