S-JIS[2004-01-10/2006-07-02] 変更履歴

JavaScriptで関数を作る

JavaScriptでは、関数は グローバルの関数しか定義できない。(クラスのメソッドのようにして使うことは出来る)


定義方法


可変引数

Javaと違って、引数の個数を可変に出来る。

    function func(){
        var msg="個数:" + arguments.length + " ";
        for(var i=0; i<arguments.length; i++){
            msg+="," + arguments[i];
        }
        confirm(msg);
    }
        func("a");            //引数1個
        func("a","b","c");    //引数3個
        func();               //引数無し

↑下線部にマウスカーソルを合わせると、func()を実行します。


[2006-07-02]

関数変数

Javaの変数は何でも入れられるので、関数クラスも入る。
以下の例を実行してみると分かるが、関数オブジェクトを表示すると関数の定義内容が表示される。

function func_let()
{
	var a = 1;
	confirm(a);
	a = func;
	confirm(a);
}


また、代入した変数から関数を実行することが出来る。

function func_run()
{
	var a = func;
	a();
	a('abc');
}


さらには、関数そのものを置き換えることも出来る。

function abc()
{
	confirm('abc');
}
function def()
{
	confirm('def');
}
function func_chg()
{
	var tmp = def;
	def = abc;
	abc = tmp;
}

すなわち関数定義とは、 関数オブジェクトを作り、変数を用意してそれを入れていることに他ならない(らしい)。


JavaScriptへ戻る / 技術メモへ戻る
メールの送信先:ひしだま