вопрос вот в чем. есть функция, скажем, в которой есть ветвление, которое трудно высчитывается, но делается
один раз.
так вот, есть два выхода (три даже), но не знаю,что выбрать... чистоту кода, скорость, или компактность?
разницы в скорости,как объявлять функцию, нет!
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% разница)
и в ФФ то же самое.
так что, для будущих поколений,
разницы в скорости,как объявлять функцию, нет!