-1

違いは何ですか

var createControl = function (attribute){ ...} 

$.fn.createControl = function (attribute) { .. }

jQueryで。関数を $.fn.createControl から var createControl に変更する利点は何ですか。

4

3 に答える 3

2
var foo = function (param) { ... }

に機能を割り当てますfoo

$.fn.foo = function (param) { ... } 

で jQuery のプロトタイプを拡張しfooます。fnは へのショートカットでprototypeあり、$は のショートカットですjQuery。次のように同じことを書くことができます:

jQuery.prototype.foo = function (param) { ... }

違いは、前者は特定のスコープ内の単なる変数であり、その外では見えないことです。後者は、jQuery グローバル オブジェクトを拡張するメソッドです。したがって、jQuery オブジェクトが にアタッチされているため、どこからでも変数にアクセスできるようになり、windowグローバルになります。

于 2012-08-06T07:21:27.393 に答える
1

これは jQuery プラグインを記述するための構文の一部であるため、次のようにカスタム プラグインを呼び出すことができます。

$(selector).createControl();

http://docs.jquery.com/Plugins/Authoring

そうすれcreateControl()ば、どの要素が呼び出されているかがわかります。を行っている場合はvar createControl、セレクターを関数に渡すか、関数内でハードコードする必要があります。

于 2012-08-06T07:16:42.077 に答える
0

を使用$.fn.createControl = function() {}すると、プラグインを使用できます。たとえば、誰かが何かのプラグインを作りたいと思っていて、プラグインをどの要素に使用させたいかをユーザーに決めさせたい場合、その人はただ行うことができます$('#element').createControl();

実行するだけで関数が作成され、その唯一の用途は、その前にセレクター要素がない場合var createControl = function() {}など、個別に呼び出されることです。createControl();

于 2012-08-06T07:20:18.020 に答える