Показать сообщение отдельно
  #1 (permalink)  
Старый 01.07.2014, 23:03
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 17.05.2014
Сообщений: 197

Оптимизация с помощью eval
В этом коде
fu=function(arg1, arg2){
    if(condition1) return arg1
    if(condition2) return arg2
}

fu(long_calculation1(), long_calculation2())

несмотря на то, что какой то один, а может и оба аргумента могут не понадобиться, они все равно вычисляются. Если переписать вот так
fu=function(arg1, arg2){
    if(condition1) return eval (arg1)
    if(condition2) return eval (arg2)
}

fu("long_calculation1()", "long_calculation2()")

Все будет намного быстрей. Можно оборачивать не в строки а в функции, а внутри вызывать, только запись будет более громоздкой.

Я, почему-то не видел никогда примеров подобных оптимизаций в js, хотя, решения, казалось бы, очевидны. Это моветон что ли? Или есть какие-то подводные камни?
Ответить с цитированием