quinta-feira, 26 de abril de 2012

Como chamar funções variáveis em javascript estilo chamada de funções variáveis em php $funcao();

Em php é possível chamar funções diferentes com o mesmo código, por exemplo:
<?php
                function fy1()
                {
                    echo "<br /> fy1();<br />";
                }
                function fy2()
                {
                    echo "fy2();<br />";
                }
                function fy3()
                {
                    echo "fy3();<br />";
                }
                function fy4()
                {
                    echo "fy4();<br />";
                }
                function fx($i)
                {
                    $f="fy".$i;
                    $f();      
                    /*
                    aqui posso chamar a função
                    fy1(); ou fy2)(); , ...
                    tudo dependerá apenas do valor de $i
                    */
                }
                fx(1);
                fx(2);
                fx(3);
                fx(4);
        ?>

http://www.php.net/manual/pt_BR/functions.variable-functions.php

Isso gera muita flexibilidade em php, e possibilita a construção de funções genéricas.
É possível fazer algo semelhante em javascript, mas como ?
É possível utilizando a função eval() do javascript(js)
Por exemplo, desejo fazer a chamada a uma função que possui um nome variável conforme um valor passado a uma função, quero chamar hora
mouseClick_opt1(); hora mouseClick_opt2();, mouseClick_opt3(); ...
Como faço isso ?
Assim
eval("mouseClick_opt"+i+"();");   
onde o i varia, no meu caso de 1 até 5

A minha função javascript ficou assim:
                              function opc_selectIndex(i)
                                {
                                    i++;                                   
                                    eval("mouseClick_opt"+i+"();");                                           
                                }   

Um exemplo de aplicação onde utilizo essa mesma função:
http://presenteperfeito.99k.org/blog/js/DOM/tjs4.html
Esse exemplo não por acaso é o exemplo do post anterior, só que bem melhorado
(http://viagemdacomputacao.blogspot.com.br/2012/04/exemplo-rapido-de-codigo-com-dom.html)
o código da aplicação comentado:
http://presenteperfeito.99k.org/blog/js/DOM/tjs4_html.html

Nenhum comentário: