違いは何ですか
var createControl = function (attribute){ ...}
と
$.fn.createControl = function (attribute) { .. }
jQueryで。関数を $.fn.createControl から var createControl に変更する利点は何ですか。
違いは何ですか
var createControl = function (attribute){ ...}
と
$.fn.createControl = function (attribute) { .. }
jQueryで。関数を $.fn.createControl から var createControl に変更する利点は何ですか。
var foo = function (param) { ... }
に機能を割り当てますfoo
。
$.fn.foo = function (param) { ... }
で jQuery のプロトタイプを拡張しfoo
ます。fn
は へのショートカットでprototype
あり、$
は のショートカットですjQuery
。次のように同じことを書くことができます:
jQuery.prototype.foo = function (param) { ... }
違いは、前者は特定のスコープ内の単なる変数であり、その外では見えないことです。後者は、jQuery グローバル オブジェクトを拡張するメソッドです。したがって、jQuery オブジェクトが にアタッチされているため、どこからでも変数にアクセスできるようになり、window
グローバルになります。
これは jQuery プラグインを記述するための構文の一部であるため、次のようにカスタム プラグインを呼び出すことができます。
$(selector).createControl();
http://docs.jquery.com/Plugins/Authoring
そうすれcreateControl()
ば、どの要素が呼び出されているかがわかります。を行っている場合はvar createControl
、セレクターを関数に渡すか、関数内でハードコードする必要があります。
を使用$.fn.createControl = function() {}
すると、プラグインを使用できます。たとえば、誰かが何かのプラグインを作りたいと思っていて、プラグインをどの要素に使用させたいかをユーザーに決めさせたい場合、その人はただ行うことができます$('#element').createControl();
実行するだけで関数が作成され、その唯一の用途は、その前にセレクター要素がない場合var createControl = function() {}
など、個別に呼び出されることです。createControl();