javascriptの関数注意点、の巻き
「JavaScriptマスターブック」の第四章を読み終わった。この章は関数についてだった。
あまり理解していなかった項目をメモってみる。
argumentsオブジェクト
function show(val)
{
document.writeln(val);
}// undefined
show();
// hoge
show("hoge")
// fuga
show("hoge","fuga")
上記のようにJavaScriptではメソッドの引数の個数をチェックしない。javaならコンパイルエラーとなるのだが。
で、argumentsオブジェクトであるが、すべての引数について以下のような操作が可能である。
function show(val)
{
alert(val)
alert(arguments.length)
for( int i=0; i
上記例ではarguments[0]はvalと同様である。
calleeプロパティ
現在実行中の関数自身を参照するプロパティ。無名関数で再帰呼び出しを実現する場合に使ったりする。
function(n)
{
if(n!=0){return n*arguments.callee(n-1);}
return 1;
}
上記はnの階乗を求めるプログラムである。