Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.03.2013, 17:29
Аспирант
Отправить личное сообщение для clgs Посмотреть профиль Найти все сообщения от clgs
 
Регистрация: 19.09.2008
Сообщений: 32

string to function
Добрый день.

Подскажите, как из этого
var qwe="function(act){console.log(act)}";

сделать это
var qwe=function(act){console.log(act)};


Указанный пример, только отчасти совпадает с реальным образцом. Т.ч. рекомендация "убрать кавычки" не принимается
Ответить с цитированием
  #2 (permalink)  
Старый 18.03.2013, 17:48
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

function log(){console.log.apply(console, arguments)}


ну если я всё правильн опонял что тебе нужно то вот

Последний раз редактировалось Vasy, 18.03.2013 в 17:52.
Ответить с цитированием
  #3 (permalink)  
Старый 18.03.2013, 17:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

clgs,
eval ?
Ответить с цитированием
  #4 (permalink)  
Старый 18.03.2013, 18:01
Аспирант
Отправить личное сообщение для clgs Посмотреть профиль Найти все сообщения от clgs
 
Регистрация: 19.09.2008
Сообщений: 32

Vasy, в строке может быть произвольный код
рони, пробовал.
var qwe=evel("function(act){console.log(act)}");
//и
var qwe=function(act){console.log(act)};

не одно и тоже
Ответить с цитированием
  #5 (permalink)  
Старый 18.03.2013, 18:17
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Функция eval()
почитай мб будет полезно
Ответить с цитированием
  #6 (permalink)  
Старый 18.03.2013, 18:18
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

eval("(function(){ })()");
Ответить с цитированием
  #7 (permalink)  
Старый 18.03.2013, 18:49
Аспирант
Отправить личное сообщение для clgs Посмотреть профиль Найти все сообщения от clgs
 
Регистрация: 19.09.2008
Сообщений: 32

Сделал так
var qwe="function(act){console.log(act)}";
eval('var asd='+qwe);
qwe=asd;
Ответить с цитированием
  #8 (permalink)  
Старый 18.03.2013, 19:03
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Не не.

var qwe="function(act){console.log(act)}";
qwe = eval('(' + qwe + ')');
Ответить с цитированием
  #9 (permalink)  
Старый 18.03.2013, 19:10
Аспирант
Отправить личное сообщение для clgs Посмотреть профиль Найти все сообщения от clgs
 
Регистрация: 19.09.2008
Сообщений: 32

Спасибо.
В реальном коде:
if(this._o.point_act) for(var k in this._o.point_act){
   if(typeof(this._o.point_act[k])=='string'){
      var t=this._o.point_act[k];
      this._o.point_act[k]=eval('('+t+')');
   }
}
Ответить с цитированием
  #10 (permalink)  
Старый 18.03.2013, 19:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

typeof - не функция, а языковая конструкция, и скобки там не нужны.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery - осуществление динамического подсчета derbass jQuery 26 10.12.2012 22:42
self = this в обертке Class bFree Общие вопросы Javascript 31 17.11.2012 23:51
Uncaught TypeError: undefined is not a function VivaLaMax Javascript под браузер 6 17.02.2012 05:04
Унаследовать Array inst Общие вопросы Javascript 26 26.01.2012 21:46
Модуль для работы с геометрией окна JSprog Библиотеки/Тулкиты/Фреймворки 25 31.08.2009 12:54