質問: 「デザイナーにも分かりやすいjQuery入門講座」サイト()などにおける、 > > jQuery > > > と > > jQo > > > の違いはなんですか? 例えば以下の2つのようなメソッドの書式に書かれているものです。 (A) ``` jQuery.cssHooks["新規cssプロパティ名"] ``` (B) ``` jQo.addClass( クラス名 ) ``` 例えば、 (A) ``` $.getJSON('data.json',function(numbers){ //処理 }); ``` と書く場合と、 (B) ``` $('#sample').hide() ``` と書く場合の違いはなんですか? (*Swiftにおける クラスメソッドとインスタンスメソッドの違いのようなものでしょうか?)
回答: > > (*Swiftにおける クラスメソッドとインスタンスメソッドの違いのようなものでしょうか?) > > > 概ねそのようなイメージです。 `$()`というのが`hide()`のようなメソッドを持ったオブジェクトを作るコンストラクタへつながっていく関数になっています。 戻り値としてそのオブジェクトを返すので`$('#sample').hide()`のように書くことができるわけです。 つまり上の例ですと`jQo`は`$('hoge')`などとして作られたjQueryオブジェクトです。 また`$`や`jQuery`についているものは結局のところjQueryオブジェクトのクラスメソッドのようなものですが、プロトタイプというもので表現されていてSwiftなどクラスの言語と比べてややこしいかもしれません。 上の`hide()`のようなメソッドを持ったオブジェクトはどれ(`jQuery`、`jQuery.fn`、`jQuery.fn.init`)のインスタンスと呼べばいいのか?ってなると思います。 このあたりの話はJavaScript、prototypeなどで調べていただくと詳しい説明が出てくるかと思います。