Показать сообщение отдельно
  #1 (permalink)  
Старый 19.06.2011, 12:23
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

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

так вот, есть два выхода (три даже), но не знаю,что выбрать... чистоту кода, скорость, или компактность?

разницы в скорости,как объявлять функцию, нет!
function abc(){

      if( fuckin_counting ){

          fucker_counter.*!*make*/!*Count( );

     } else {

          fucker_counter.*!*do*/!*Count( );

    }

}


да,да. видите названия методов? различие в первой половине. И еще, доступа к этим функциям я не имею (ну, браузеровские)

можно еще так

abc =  fuckin_counting ?

                      function(){

                           fucker_counter.makeCount();

                      }       :

                      function(){

                           fucker_counter.doCount();

                      }

да, я знаю, что возможно было и опустить анонимные обёртки. я пишу то, что у меня в редакторе, изменяя названия.

так вот, и еще третий способ. его я боюсь пробовать, потому что наслышан о производительности такого способа объявления.

abc = new Function ( "fucker_counter."+(fuckin_counting?"make":"do")+"Count()" )


но это фигня, потому что не видно локальных переменных.
тогда что, заюзать eval ?

eval( "abc = fucker_counter."+(fuckin_counting?"make":"do")+"Count()" )


кода там чуть больше, чем тут. там есть один аргумент у makeCount (или doCount), который пздц как написан в одну строчку. (свёрнут,короче говоря).

так что думаете ? не знаю, что выбрать.

щас посравниваю скорости


о yeah. я люблю этот сайт ))

вот тест как раз для меня

результаты вхроме примерно одинаковые (меньше 1% разница)

и в ФФ то же самое.

так что, для будущих поколений,

разницы в скорости,как объявлять функцию, нет!

Последний раз редактировалось melky, 19.06.2011 в 12:56.
Ответить с цитированием