【不定期連載】読解 jQuery Vol.1

jQuery/$ の宣言

jQuery全体は無名関数内に記述されており、グローバルを汚染しません。
唯一グローバルに宣言されているものは jQuery$ であり、jQueryのメソッドを呼び出す際はこれを利用します。

ここでwindow.jQuerywindow.$に無名関数内のjQueryを代入しています。
またjQuery,$は実際にはjQuery.fn.init()です。

 

jQueryオブジェクト(メソッドチェーン)

 $('#id')と書く事でjQuery.fn.init()のインスタンスとして jQueryオブジェクト が生成されます。
jQuery内のメソッドの多くはjQueryオブジェクトを受け取って、jQueryオブジェクトを返すように設計されています。
そのため、$('#id').html('chain!').css('color','blue'); のようにメソッドを繋げて書く事ができます。(メソッドチェーン)

メソッドチェーンは、メソッドがjQueryオブジェクトを受け取ってjQueryオブジェクトを返す事で実現するため、返り値がstring型などになると動作しなくなります。

これは.html()メソッドを引数無しで呼び出した場合、返り値が string になるからです。

 下の箇所で引数を評価しており、undefinedの場合の返り値はelem.innerHTMLになります。

typeof で見てみると分かりやすいですね。

次回からはjQueryの関数について、細かく見ていきたいと思います。

●この記事を書いた人