複数の関数をランダムに呼び出す

動作ブラウザ
Internet Explorer Netscape Navigator
4.0x 4.5 5.0x 5.5 6.0 4.x 6.0
Windows -
Macintosh - -
UNIX - - - - -

解  説  複数の関数をランダムに呼び出すには、いくつか方法があり一番オーソドックスな方法としてはif命令かswicth命令を使って分岐させる方法です。しかし、呼び出す関数が増えてしまうと行が長くなりプログラムの視認性が悪くなります。JavaScriptでは、あらかじめ呼び出す関数名を配列に格納しておき、末尾に()を付加することで関数を呼び出すことができます。この場合、正しく呼び出せない場合はevalを使って式の評価を行ってから呼び出すようにします。関数の戻り値を呼び出す関数名にしたい場合はfunc()()のように末尾に()を付加していきます。
コード <html> <head> <title>複数の関数をランダムに呼び出す</title> <script language="JavaScript"> <!-- function a(){ alert("function a") } function b(){ alert("function b") } function c(){ alert("function c") } function d(){ alert("function d") } func = ["a","b","c","d"]; n = Math.floor(Math.random()*4); eval(func[n])(); // --></script> </head> <body> </body> </html>

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!