jQuery.fn.extend(); jQuery.extend();
jQuery.fn = jQuery.prototype = {init: function( selector, context ) {//….//……};
jQuery.fn = jQuery.prototype であることが分かります。
JavaScript にはクラスという明確な概念がありませんが、それを理解するにはクラスを使用する方が便利です。
jQuery は非常によくカプセル化されたクラスです。たとえば、ステートメント $(“#btn1”) を使用すると、jQuery クラスのインスタンスが生成されます。
jQuery クラスにクラス メソッドを追加します。これは、静的メソッドを追加するものとして理解できます。例:
jQuery.extend({ min: function(a, b) { return a < b ? a : b; }, max: function(a, b) { return a > b ? a : b; } }); jQuery.min(2,3); // 2 jQuery.max(4,5); // 5 Objectj Query.extend( target, object1, [objectN])
1 つまたは複数の他のオブジェクトでオブジェクトを拡張し、拡張されたオブジェクトを返す
var settings = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; jQuery.extend(settings, options); //结果:settings == { validate: true, limit: 5, name: "bar" } jQuery.fn.extend(object);
jQuery.prototype の拡張とは、jQuery クラスに「メンバー関数」を追加することです。 jQueryクラスのインスタンスはこの「メンバー関数」を利用することができます。
たとえば、特別な編集ボックスを作成するプラグインを開発したいとします。それがクリックされると、現在の編集ボックスの内容が警告されます。これを行うことができます:
$.fn.extend({ alertWhileClick:function() { $(this).click(function(){ alert($(this).val()); }); } }); $("#input1").alertWhileClick(); // 页面上为: $("#input1") //为一个jQuery实例,当它调用成员方法 alertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。
jQuery.extend() の呼び出しは、メソッドをオブジェクトのインスタンスに拡張しません。また、それを参照するメソッドも、jQuery.init() などの jQuery クラスを通じて実装する必要があります。 extend() の呼び出しはメソッドをオブジェクトのプロトタイプに拡張するため、jQuery オブジェクトがインスタンス化されると、これらのメソッドが jQuery.js
のあらゆる場所に反映されます。jQuery.fn.extend = jQuery.prototype.extend
オブジェクトを jQuery のプロトタイプに拡張できます。この場合、それはプラグインのメカニズムです。
りー以上がjQuery はプラグインを開発するための 2 つの方法を提供しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。