Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
JavaScriptに、applyとcallというメソッドが用意されていますが、自分なりにapplyとcallの丁寧に説明をしてみようと思ってこのエントリーを書くなどをしてみます。 applyとcallは非常に似たメソッドなので、まずはcallから説明します。 callメソッドとは? callメソッドは以下のように呼び出します。 methodA.call(thisArg, [, arg1 [, arg2, ...]]); methodAには任意の関数(メソッド)を指定します。 callの引数は第一引数にmethodAのthisとしたいオブジェクトを指定して、第二引数以降はmethodAに渡したい引数があれば、カンマ区切りでそれぞれ指定します。 callメソッドは、すべての関数が共通して持っているメソッドです。すべての関数はFunctionクラスのオブジェクトで、callはFunction.
JavaScript の function オブジェクトには call メソッドと apply メソッドというものが標準で用意されています。不思議な動作をするメソッドであり、その有用性を理解するのは難しいのですが、いつか役に立つ時がくるはず?なので調べました。 call メソッドの基本的な動作 まず、オブジェクトと関数を定義します。
関数を指定したthis値と、 配列として提供された引数(arguments)(または配列風のオブジェクト)で呼び出します。 注意: この関数の文法はcall()とほぼ同じです。 根本的な違いは、call()が引数のリストを受け入れるのに対し、apply()は単一の引数の配列のみを受け取るところです。 文法 fun.apply(thisArg, [argsArray]) fun(関数)の呼び出しに提供されるthis値を指定します。 このメソッドによって参照されるのは実際の値では無いかもしれないことに注意してください。 もし、メソッドが非strictモードのコード内の関数である場合、 nullとundefinedはグローバルオブジェクトに置き換えられ、 プリミティブ値はボックス化されます。 funに呼び出される引数として、配列風のオブジェクトを指定します。 関数へ提供する引数が無ければ、nul
JavaScript おれおれ Advent Calendar 2011 – 16日目 (※「スルー力」は「するーか」じゃなくて「するーりょく」です。) .apply()を使って他の関数を実行できる事は昨日示しました。 これを応用して、メソッドが呼ばれた際にそのままスルーして、別のメソッドが呼ばれたかのように振る舞う事ができます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く