最近の記事
- 9/1 - 将棋始めました
- 5/16 - サーバー引っ越し
- 4/24 - 優先順位
- 3/17 - vbNullString と 空文字列 ""
- 3/15 - InputBox 関数の戻り値
- 3/13 - 紙と Excel と VBA
- 3/9 - 未だに Visual Basic 6
- 11/14 - ぼて閉鎖
- 11/9 - 関数オブジェクトの呼び出し
- 9/7 - メソッドとしての関数オブジェクト
Entering Passive Mode
function invoke(func, x, y) {
return func(x, y);
}
function foo(x, y) {
return x * y;
}
foo.value = invoke(foo, 3, 5);
var bar = foo;
alert(bar.value);
alert(foo.toString());
alert(foo === bar);
JavaScript では、関数はオブジェクトの一種である。
関数は、通常のオブジェクトとしての特性に加え、
() 構文で「呼び出し可能」という特徴を持つ、
特別なオブジェクトとして扱われる。
JavaScript では、function キーワードを使うことで、
関数オブジェクトを作成することができる。
関数がオブジェクトであるということは、
プロパティを設定することも可能だし、
プロパティや変数に代入したり、
別の関数の引数として渡すことも可能なのだ。
上記の例では、invoke と foo が関数オブジェクトだ。
言い方を変えると、invoke と foo という変数があり、
それぞれに関数オブジェクトが代入されている。
途中で宣言している bar には foo が代入されるので、
変数 foo と bar は同一のオブジェクトを参照している。
コメント (0 件)