名著JavaScript:the good parts 「良いパーツ」によるベストプラクティス [ ダグラス・クロフォード ]覚書
私が買ったのは,2010年10月13日 初版第6刷発行
Invocation 関数の呼出し(P32)
There are four patterns of invocation in Javascript.
(Javascriptにおいて,関数の呼出しは4パターンある)
The method invocation pattern (メソッド呼出しパターン)
The function invocation pattern (関数呼出しパターン)
The constructor invocation pattern (コンストラクタ呼出しパターン)
The apply invocation pattern (apply呼出しパターン)
The patterns differ in how the bonus parameter this is initialized.
(thisという追加パラメータがどのように初期化されるかという点で違う)
疑問
何故,関数の呼出しにcallメソッドを使用したパターンが含まれないのだろうか?
P162~168のjson_parse関数にはcallメソッド使っているからこの本の出版時にはcallメソッドが存在してるはず。本書にcallメソッドの解説は一切なし。callメソッドを意図的に外したのか?
callメソッドの解説を外した理由は作者しか分からないな。
applyメソッドとcallメソッドは、関数呼び出しパターンにおいてthisコンテキストを指定するための方法であるため、apply呼び出しパターンとcall呼び出しパターンで2つに分けない。
Invocation 関数の呼出し(修正版)
The method invocation pattern (メソッド呼出しパターン):オブジェクトのメソッドとして関数が呼び出される。
The function invocation pattern (関数呼出しパターン):関数が単独で呼び出される。
The constructor invocation pattern (コンストラクタ呼出しパターン):new キーワードを使用して関数がコンストラクタとして呼び出され、新しいオブジェクトが生成される。
The apply, call invocation pattern (apply, call呼び出しパターン): apply メソッドまたは call メソッドを使用して関数が呼び出され、this コンテキストと引数が指定される。
var json_parse = function(){
//この中でcallメソッドが使用されている
}();