jQuery扩展---$.extend和$.fn.extend
2017-05-03 00:00
218 查看
一、jQuery.extend
上面代码给Jquery 这个类本身添加了一个叫static的方法,被合并到了全局对象中,只与 Jquery 本身有关,与其他的 Jquery 实例对象是没有关系的。所以,这个扩展也就是所谓的静态方法。
二、jQuery.fn.extend
在jQuery源码里,jQuery.fn=jQuery.prototype,jQuery实例对象的原型赋值给jQuery.fn,所以,jQuery.fn.extend拓展的是jQuery对象(原型的)的方法啊!jQuery实例对象是啥?就是类的实例化嘛,例如 $(“#mydiv”) 。
(function($){ $.extend({ static:function(){ console.log("静态方法"); } }); }(jQuery)); $(function(){ $.static(); //console "静态方法" $("#mydiv").static; //报错 });
上面代码给Jquery 这个类本身添加了一个叫static的方法,被合并到了全局对象中,只与 Jquery 本身有关,与其他的 Jquery 实例对象是没有关系的。所以,这个扩展也就是所谓的静态方法。
二、jQuery.fn.extend
(function($){ $.fn.extend({ showId:function(){ console.log(this.attr("id")); //mydiv 这里this指的是调用这个方法的jQuery实例对象,本例指得是$("#mydiv"); console.log(this instanceof jQuery); //true }, dynamic:function(){ console.log("jQuery实例对象的"); } }); }(jQuery)); $(function(){ $("#mydiv").showId(); $("#mydiv").dynamic(); //console "jQuery实例对象的" $.showId(); //报错 });
在jQuery源码里,jQuery.fn=jQuery.prototype,jQuery实例对象的原型赋值给jQuery.fn,所以,jQuery.fn.extend拓展的是jQuery对象(原型的)的方法啊!jQuery实例对象是啥?就是类的实例化嘛,例如 $(“#mydiv”) 。
相关文章推荐
- jQuery 的方法扩展,$.extend()、$.fn.extend()和$.fn区别
- jquery扩展的两个方法与区别 $.extend $.fn.extend
- jquery的extend和fn.extend (扩展jQuery类或jQuery对象方法)
- jquery扩展之jQuery.fn.extend
- jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
- jQuery扩展-jquery.fn.extend与jquery.extend
- JQuery添加扩展方法(理解$.extend(),与$.fn.extend()方法区别)
- jQuery.extend()、jQuery.fn.extend()扩展方法详解
- jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
- jquery 之 自定义扩展插件: jquery.fn.extend与jquery.extend
- JQuery添加扩展方法(理解$.extend(),与$.fn.extend()方法区别)
- jQuery扩展插件方法----jQuery.extend() 与 jQuery.fn; 以及插件的连缀调用。
- JQuery添加扩展方法(理解$.extend(),与$.fn.extend()方法区别)
- jquery扩展方法:jquery.fn.extend与jquery.extend
- jquery扩展:$.extend()和$.fn.extend()
- 利用jQuery对插件进行扩展时,方法$.extend()、$.fn.extend()区别与联系
- jquery.fn.extend与jquery.extend 为扩展jQuery类本身
- jQuery扩展插件——$.extend(obj)与$.fn.extend(obj)
- jQuery.extend()、jQuery.fn.extend()扩展方法详解
- jquery添加扩展方法中的$.extend()与$.fn.extend()之间的区别