javascript

Apr 30, 2008 18:01

вот оно, решение, которое я искал очень долго.
жалко, что догадался только с подсказки.
задача: имея функцию ххх, передать ее в другую функцию как параметр и запустить без использования eval

решение невероятно простое, передать название функции как переменную и запустить

пример:
как делают те, кто не знает как делать:
function xxx(){ alert('xxx'); }
function run(f){ eval(f); }
run('xxx()'); //передал как стринг, запустил через евал
как надо:
function xxx(){ alert('xxx'); }
function run(f){ f(); }
run(xxx); //передал как переменную, запустил

гениально, блин.
экономия времени может быть в 100! раз, eval медленнее раз в 10-100, зависит от кода.
Previous post Next post
Up