JavaScript:callとapplyの違いとか の変更点
Top / JavaScript:callとapplyの違いとか
- 追加された行はこの色です。
- 削除された行はこの色です。
- JavaScript:callとapplyの違いとか へ行く。
- JavaScript:callとapplyの違いとか の差分を削除
*JavaScript:callとapplyの違いとか [#x54b04a4] callとapplyは、第一引数に関数を実行するコンテキストをとるのは同じだけど、実行する関数への引数の渡し方が違います。 -callは、call関数の引数として指定された2番目以降の引数がそのまま引き渡される -applyは引数として1つの配列オブジェクトを指定し、その配列オブジェクトが展開されて引数として引き渡される 例を見た方がはやいですな。 以下の例では、引き渡された数字を足し込む関数を -そのまま -call経由 -apply経由 で呼び出します。 ■例 function sum(){ var result = 0; for (var n = 0; n < arguments.length; n++ ){ result += arguments[n]; } this.result = result; } var scope1 = {}; var scope2 = {}; // グローバルスコープで実行 sum(1,2,3,4) // scope1のスコープでapplyで実行 sum.apply(scope1,[5,6,7,8]); // scope2のスコープでcallで実行 sum.call(scope2,9,10,11,12); // それぞれ結果を確認 console.log(result); console.log(scope1.result); console.log(scope2.result); 結果は以下のとおり。 10 26 42