【探究jQuery】jQuery.extend 和 jQuery.fn.extend 的区别
2016-08-05 13:57
441 查看
jquery在拓展方面,提供了两个很强大的方法:jquery.extend和jquery.fn.extend。
接下来我们来深究一下这兄弟俩的具体区别。
其实从字面上我们就可以看出,一个是对jquery的extend,一个是对jquery.fn的extend。
这么说可能有点笼统,但是很方便理解。
我们一步步来看。
首先,理解jquery是什么
我们知道,在使用jquery的过程中,我们可以jquery(“#a”)或者$(“.c”)来获取dom中的元素。
我们来看一下jquery源码中的定义(构造函数):
我们看到一个很熟悉的字眼new,那我们也就知道了,jquery其实可以看作是一个类,$是他的简写方式。
那么jquery.extend也就很好理解了,是对这个jquery类的拓展,举个例子:
那我们该怎么使用呢?我们要这么用:$.tip(“hello world”);
看到这里,我想,聪明的你应该大体有些明白的赶脚了~~
其次,理解jquery.fn是什么
同样,我们还是先来看一下jquery的源码中的定义:
这下就一目了然了,原来jquery.fn就是jquery的原型对象呀~~
那jquery.fn.extend不就是对jquery原型对象的拓展么~
那也就是对$(“#a”)这样的拓展咯~
所以,我们再来个例子:
这个该怎么用呢?我想聪明的你肯定猜到了:$(“#a”).tip(“hello world”);
如果这时候再$.tip(“hello world”);这么用,肯定就要报错啦~
总结一下:一般只有很特殊的方法如.ajax();.trim();等才会对jquery类去拓展。通常我们去写的插件,都是对jquery原型对象的拓展。
欢迎大家加入我的QQ群:484805249
![](http://pub.idqqimg.com/wpa/images/group.png)
来一起讨论前端技术,互相学习。写的不到位的地方,还请指教。
接下来我们来深究一下这兄弟俩的具体区别。
其实从字面上我们就可以看出,一个是对jquery的extend,一个是对jquery.fn的extend。
这么说可能有点笼统,但是很方便理解。
我们一步步来看。
首先,理解jquery是什么
我们知道,在使用jquery的过程中,我们可以jquery(“#a”)或者$(“.c”)来获取dom中的元素。
我们来看一下jquery源码中的定义(构造函数):
// Define a local copy of jQuery jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); }
我们看到一个很熟悉的字眼new,那我们也就知道了,jquery其实可以看作是一个类,$是他的简写方式。
那么jquery.extend也就很好理解了,是对这个jquery类的拓展,举个例子:
$.extend({ tip : function (msg) { alert("My tips is" + msg); } });
那我们该怎么使用呢?我们要这么用:$.tip(“hello world”);
看到这里,我想,聪明的你应该大体有些明白的赶脚了~~
其次,理解jquery.fn是什么
同样,我们还是先来看一下jquery的源码中的定义:
jQuery.fn = jQuery.prototype = { //省略中间部分 };
这下就一目了然了,原来jquery.fn就是jquery的原型对象呀~~
那jquery.fn.extend不就是对jquery原型对象的拓展么~
那也就是对$(“#a”)这样的拓展咯~
所以,我们再来个例子:
$.fn.extend({ tip : function (msg) { alert("My tips is" + msg); } });
这个该怎么用呢?我想聪明的你肯定猜到了:$(“#a”).tip(“hello world”);
如果这时候再$.tip(“hello world”);这么用,肯定就要报错啦~
总结一下:一般只有很特殊的方法如.ajax();.trim();等才会对jquery类去拓展。通常我们去写的插件,都是对jquery原型对象的拓展。
欢迎大家加入我的QQ群:484805249
![](http://pub.idqqimg.com/wpa/images/group.png)
来一起讨论前端技术,互相学习。写的不到位的地方,还请指教。
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- JavaScript演示排序算法
- 2015-2016网页设计趋势分析 Web Design of Trends
- jQuery Ajax 跨域调用
- 移动端的长按事件
- jquery教程靠边站,一分钱不花让你免费学会jquery
- JQuery+Strusts1.x无刷新登录
- $.ajax()方法详解
- jQuery ajax - ajax() 方法
- JavaScript 各种遍历方式详解
- 数组方法汇总
- jQuery Html控件基本操作(日常收集整理)
- jQuery插件实现文字无缝向上滚动效果代码
- jQuery菜单插件用法实例
- JQuery 初体验(建议学习jquery)
- 基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
- Jquery实现的table最后一行添加样式的代码
- jQuery实现向下滑出的平滑下拉菜单效果
- jQuery 练习[一] 学习jquery的准备工作
- jquery获得页面元素的坐标值实现思路及代码