スポンサーリンク

JavaScriptのcallとapplyの違いを,一発で記憶して忘れない方法(メソッド引数が個別なのか配列なのかの違いを暗記する方法)

JavaScriptのcall/applyの違いには,覚え方がある。

  • call : 「」ール: 「」別に引数を渡す。
  • apply : 「」プライ: 「」レイとして引数を渡す。

第二引数として,個別に渡すか,配列で渡すかの違いだ。

上記のように,「コ」と「ア」の区別で記憶しておけば忘れない。


applyのほうが汎用的:

applyとcallの使い方を丁寧に説明してみる - あと味
http://taiju.hatenablog.com/entry/201...

  • applyはcallで引数をカンマ区切りで指定するのと違い、引数を単一の引数リストとして使う点が異なります。


Javascriptのcall/apply関数のプロっぽい使い方 〜 JSおくのほそ道 #014 - Qiita
http://qiita.com/setzz/items/155af031...

  • applyは引数リストを配列化出来るので引数の個数が変動するや配列を引き回すときに有効

call/applyは,JavaScriptでクラスの継承をする時に役立つ。

親クラスのメソッドを,子クラスのインスタンスを主体として実行できるから。

JavaScriptで,クラスを継承する方法 (複数のサブクラスから共通クラスのプロトタイプを参照する)
http://language-and-engineering.hatenablog.jp/entry/20100924/p1

  • (「動的」初期化の場合) 子クラス間で,コンストラクタを共有すればよい。 そのためのひとつの方法は, 子クラス間で共通のインスタンス初期化処理を独自の関数として定義し, その関数を,子クラスの実コンストラクタ内で,callやapply付きで呼び出す。 なぜcallやapplyが必要かというと,new付きで呼び出される関数(=コンストラクタ)の内部ではthisの意味が変わり,thisが新規オブジェクトを指すようになるから。

関連記事:

素数判定の処理を,再帰アルゴリズムで1文で書いたJavaScriptプログラムは
http://computer-technology.hateblo.jp/entry/20140429/p1


PHPと異なり,JavaScriptの連想配列とfor in構文には順序の概念がないので注意すること
http://computer-technology.hateblo.jp/entry/20140601/p1


CSSの疑似クラスは非DOM。JavaScript/jQueryで直接操作は不可能。style要素の動的変更で対処せよ
http://computer-technology.hateblo.jp/entry/20140426/p1


HTML5 APIのJavaScriptを学ぶための学習サイト集
http://computer-technology.hateblo.jp/entry/20140302/p1


JavaScriptのclassName属性は,要素の複数のクラス名をスペース区切りで取得する
http://computer-technology.hateblo.jp/entry/20140104/p2