Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.12.2011, 19:13
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Как тип String переделать в js код?
Извиняюсь если не так выразился, но задача такого рода: если допустим переменная: var a = "function a() { alert('hello world') }" Можно ли ее в js коде оформить как код?
<script>
function a() {
var a = 'function a() { alert('hello world') }' //сделать это не переменной, а кодом?
}
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2011, 19:14
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

eval()
Ответить с цитированием
  #3 (permalink)  
Старый 22.12.2011, 19:28
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

<script>
var a = "function a() { alert('hello world') }"
eval(a)
a()
</script>

Спасибо, разобрался =)
Ответить с цитированием
  #4 (permalink)  
Старый 22.12.2011, 20:11
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

<script>
function getFuncTime(funct) {
var _function = funct
eval(funct) //получили ф-ию в коде
var reg = _function.match(/function\s(\w*\(\))/) //изъяли оттуда имя ф-ии, лежит в reg[1]
console.time('time')
reg[1] //запускаем ф-ию
console.timeEnd('time')
}
getFuncTime("function a() { for(i=0;i<1000;i++) {} }")
</script>

Хотел сделать такую ф-ию, которая показывала бы за какое время исполняется та или иная ф-ия. Все не могу понять почему в консоли работа цикла показывается за time: 0ms (20µsec), где я ошибся? Все свои мысли оставил в комментариях в коде...
Ответить с цитированием
  #5 (permalink)  
Старый 22.12.2011, 21:52
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

9xakep, имя функции можно получить через св-во name. Во-первых. А во-вторых, у вас какой-то странный ход мыслей... Функция-то может быть и безымянной.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #6 (permalink)  
Старый 22.12.2011, 22:05
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

1)ну name я и так получил) (умный в гору не пойдет, умный гору обойдет..ага...)
2)мне пока это сделать бы, я в идеале хотел вообще так: getFucTime(function_name(), alert/console/text) Последнее: через что отобразить. А в чем ошибка-то собственно говоря?

Последний раз редактировалось 9xakep, 22.12.2011 в 22:09.
Ответить с цитированием
  #7 (permalink)  
Старый 22.12.2011, 22:50
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

function getFunctionRunTime(func){
 t1= +(new Date());
 func();
 console.log(+(new Date()) - t1);
};


UPD: поправил скобку, была опечатка.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)

Последний раз редактировалось trikadin, 23.12.2011 в 19:25.
Ответить с цитированием
  #8 (permalink)  
Старый 22.12.2011, 23:57
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

9xakep,
я вообще в вашем коде цикла не увидел, вы о чём? И вообще, если запускать reg[1], то наверно так уж - eval(reg[1])();
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #9 (permalink)  
Старый 23.12.2011, 08:18
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Сообщение от trikadin Посмотреть сообщение
function getFunctionRunTime(func){
 t1= +(new Date()};
 func();
 console.log(+(new Date()) - t1);
};
Так просто оказвыается, я думал надо будет брать ф-ию(искать ее каким либо образом в коде) приводить к String, и дальше все как у меня.
"t1= +(new Date()};" Опечатка или тут эта скобка нужна?
Сообщение от Nekromancer Посмотреть сообщение
9xakep,
я вообще в вашем коде цикла не увидел, вы о чём? И вообще, если запускать reg[1], то наверно так уж - eval(reg[1])();
Спасибо, вот этот код вроде как работает:
<script>
function getFuncTime(funct) {
var _function = funct
var reg = _function.match(/function\s(\w*)/) //изъяли оттуда имя ф-ии, в нашем случае a
console.time('time')
eval(funct)
eval(reg[1])()
console.timeEnd('time')
}
getFuncTime("function a() { var m = [1,2,2,22]; for(var i=0;i<m.length;i++) { m[i] }  }")
</script>
Ответить с цитированием
  #10 (permalink)  
Старый 23.12.2011, 08:59
Аспирант
Отправить личное сообщение для m4gz Посмотреть профиль Найти все сообщения от m4gz
 
Регистрация: 27.10.2011
Сообщений: 43

Eval как и в пхп, только ее считают небезопасной, мол слишком много свободы для непредсказуемой строки, незнаю в чем тут логика, если твой код и твой евал обрабатывает строго регламентированную функцию, где опасность?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как воспроизвести звук посредством JS на телефоне ? FreeDas Мобильный JavaScript 14 06.03.2013 14:52
Как с помощью JS перенаправить на указанную страницу ? saturn Элементы интерфейса 2 31.10.2011 22:57
Как создать bodyclick код royksopp Общие вопросы Javascript 8 14.10.2011 16:39
Как получит ссылку на элемент внутри которого запустили JS код? aRpi Events/DOM/Window 20 02.10.2011 13:36
способы организации кода melky Общие вопросы Javascript 17 01.10.2011 22:57