jQuery为开发插件提拱了两个方法,分别是:
jQuery.fn.extend();
jQuery.extend();
//底层实现的大概方法是
// function extend(target, source) {// for (const key in source) {// target[key] = source[key]// }// }
//extend(obj, zz)
1. jQuery.fn = jQuery.prototype 2. $.extend(object)
为jQuery类添加类方法,可以理解为添加静态方法
$.extend({
min: function(a, b) { return a < b ? a : b; },
max: function(a, b) { return a > b ? a : b; }
});
$.min(2,3); // 2
$.max(4,5); // 5
3.$.extend( target, object1, [objectN])
用一个或多个其他对象来扩展一个对象,返回被扩展的对象
var obj1 = { result: false, num: 5, name: "foo" };
var obj2 = { result: true, name: "bar" }; $.extend(obj1, obj2); //obj1 == { result: true, num: 5, name: "bar" }
4. $.fn.extend(object)
对jQuery.prototype进得扩展,为jQuery类添加方法(函数)。jQuery类的实例可以使用这个函数。
$.fn.extend({
alertClick:function() {
$(this).click(function(){
alert($(this));
});
}
});
$("button").alertClick(); // 页面上为:
$("button")为一个jQuery实例,当它调用成员方法 alertClick后,便实现了扩展,每次被点击时它就会弹出。
5. jQuery.fn.extend = jQuery.prototype.extend
拓展一个对象到jQuery的 prototype里去就是插件机制。·