menu
書いてる野郎
orebike@gmail.com
2011-08-05 jQuery 1.6.1
基本。
(function($){ //ここに何か定義を書く })(jQuery);
ここからの説明はこの即時実行の関数の中でやるものとする
いきなりここでjQuery原型のオブジェクトに土足で踏み込むように追加する。なんのシカケもなかったw
$.hogeHoge = function(){ //ここで何かする };
ま、使うときはこんな感じ
$.hogeHoge();
↑では原型のオブジェクトに直接追加しているがこの場合は「$関数」で発生させるjQueryオブジェクトにメソッドを追加する
$.fn.hoge = function(){ //何か処理 thisはjQueryオブジェクト };
「fnプロパティ」にいきなり関数をぶち込んでOK たいしたことじゃない、「fnプロパティ」はjQueryの原型オブジェクトのprototypeなのだ
逆に言うとこれはprototypeなので処理しか書いてはだめ。
このぶち込んだ関数内ではthisはjQueryオブジェクトになる
方針を考える。プラグインにおいては核になるのはthisが指し示すjQueryオブジェクトだ。核に後付でプロパティを突っ込むのではそれはpublicになってしまうのでよろしくない。ということで無名関数空間を勝手に切ってそこにアンカーを打ち込んだ変数をクロージャでpublicなメソッドに持ち込む方法が考えれるな。
無名空間を勝手に切るならばオブジェクトのnewに関与しなければならない
イロイロ考えて無理っぽいのでpublicでイイじゃんということでw。