「JavaScript/Function」の版間の差分

削除された内容 追加された内容
U14269 (トーク | 投稿記録)
U14269 がページ「JavaScript/Function」を「JavaScript/関数」に移動しました
 
U14269 (トーク | 投稿記録)
JavaScript/標準ライブラリ/Function 12:05, 7 August 2015‎ UTC を転記
1 行
:<small>[[JavaScript]] > '''Functionオブジェクト''' </small>
#転送 [[JavaScript/関数]]
 
== Functionオブジェクト ==
 
=== プロパティ ===
==== constructor ====
==== length ====
この関数が取る引数の数を返す。
<nowiki>
function foo(a,b,c){ return; }
document.write( foo.length ); // 3が表示される。
</nowiki>
既に前の項で説明をしているが、指定されている引数が3つであるからいって、引数が3つである必要は無い。
 
=== メソッド ===
 
==== toString() ====
関数の処理内容を文字列で返す。
 
==== call(thisArg [ , arg1 [ , arg2, … ] ] ) ====
callはその関数を実行する。
また、関数に引数を与えたい場合には、callメソッドの第2引数以降に指定をする。
つまりは次の2文は等価である。
 
<nowiki>
document.write( a("Hello") );
document.write( a.call( null, "Hello") ); </nowiki>
 
callメソッドの存在意義は、第1引数があり、ここで親オブジェクトを指定可能である所である。
そのため、thisを一時的に上書きする等の使用法がある。
 
<nowiki>
function foo(){
this.x=10;
(function(){
document.write( this.x ); // 10が表示
}).call(this);
} </nowiki>
 
==== apply(thisArg, argArray) ====
 
callメソッドと同じく、メソッドを実行できる。
callメソッドとの違いは、引数に配列を与えると、これを展開して実行することである。
 
例えば、次の様に配列を自動で展開して実行可能である。
<nowiki>
Math.max.apply( null, [1,5,8,9,2,10,30,5] ); </nowiki>
 
[[Category:JavaScript]]