jQuery.extend()、jQuery.fn.extend()扩展方法示例详解


Posted in Javascript onMay 08, 2014

jQuery自定义了jQuery.extend()和jQuery.fn.extend()方法.其中jQuery.extend()方法能够创建全局函数或者选择器,而jQuery.fn.extend()方法能够创建jQuery对象方法.

例如:

jQuery.extend({ 
showName : function(name){ 
alert(name) 
} 
}); 
jQuery.showName("深蓝");

jQuery.extend()除了可以创建插件外,还可以用来扩展jQuery对象.
例如:
var a = { 
name : "blue", 
pass : 123 
} 
var b = { 
name : "red", 
pass : 456, 
age : 1 
} 
var c = jQuery.extend({},a,b);

c拥有a,b对象的属性,由于,b对象在a对象之后,其name属性优先在c对象里.

jQuery.extend()方法为插件传递系列选项,包括默认值.

function fn(options){ 
var options = jQuery.extend({ //默认参数选项列表 
name1 : value1, 
name2 : value2, 
name3 : value3 
},options); //使用函数的参数覆盖或合并到默认参数选项列表中 
//函数体 
} 
fn({ name1 : value3, name2 : value2 , name3 : value1 });//使用新值 
fn({ name4 : value3, name5 : value2 });//在默认上添加新选项 
fn(); //保持默认选项值

当在调用该方法时,传递新的参数值,就会覆盖掉默认的参数选项值,否则,使用默认参数值.

使用JQuery.fn对象创建JQuery对象方法

可以通过jQuery.fn对象来添加属性和方法,实际上jQuery.fn对象就是挂接在jQuery.prototype上的,jQuery把它简写了.

fn 是什么东西呢。查看jQuery代码,就不难发现。

jQuery.fn = jQuery.prototype = { 
 init: function( selector, context ) {//....  

 //...... 
};

原来 jQuery.fn = jQuery.prototype.对prototype肯定不会陌生啦。

例如:

jQuery.fn.test = function(){ 
alert("这是jQuery对象方法!"); 
} 
jQuery("div").click(function(){ 
$(this).test(); //在当前的jQuery对象上调用test()方法 
});

我们可以调用jQuery.fn.extend()方法来创建jQuery对象方法.
jQuery.fn.extend({ 
test : function(){ 
return this.each(function(){ 
alert(this.nodeName) 
}); 
} 
}); 
jQuery("body *").click(function(){ 
$(this).test(); //调用jQuery对象方法 
});

一句话:jQuery.extend是对JQuery类的自定义扩展,jQuery.fn.extend是对JQuery对象的自定义扩展.
Javascript 相关文章推荐
指定js可访问其它域名的cookie的方法
Sep 18 Javascript
javascript 广告后加载,加载完页面再加载广告
Nov 25 Javascript
js 操作select与option(示例讲解)
Dec 20 Javascript
js实现飞入星星特效代码
Oct 17 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
Apr 28 Javascript
js原生实现FastClick事件的实例
Nov 20 Javascript
详解vue之页面缓存问题(基于2.0)
Jan 10 Javascript
利用ES6实现单例模式及其应用详解
Dec 09 Javascript
JavaScript中七种流行的开源机器学习框架
Oct 11 Javascript
JavaScript中concat复制数组方法浅析
Jan 20 Javascript
解决layer弹出层自适应页面大小的问题
Sep 16 Javascript
我所理解的JavaScript中的this指向
Sep 04 Javascript
jquery通过visible来判断标签是否显示或隐藏
May 08 #Javascript
setInterval计时器不准的问题解决方法
May 08 #Javascript
Js Jquery创建一个弹出层可加载一个页面
May 08 #Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
May 08 #Javascript
js 设置缓存及获取设置的缓存
May 08 #Javascript
javascript实现的一个带下拉框功能的文本框
May 08 #Javascript
javascript解析json数据的3种方式
May 08 #Javascript
You might like
PHP 导出Excel示例分享
2014/08/18 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
不错的新闻标题颜色效果
2006/12/10 Javascript
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
使用JS读秒使用示例
2013/09/21 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
JSONObject使用方法详解
2015/12/17 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
Vuex入门到上手教程
2018/06/20 Javascript
详解iview的checkbox多选框全选时校验问题
2019/06/10 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
在Python程序中实现分布式进程的教程
2015/04/28 Python
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
使用SAE部署Python运行环境的教程
2015/05/05 Python
Python reduce()函数的用法小结
2017/11/15 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
情况说明书格式范文
2014/05/06 职场文书
经营管理策划方案
2014/05/22 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
2015年校长新年寄语
2014/12/08 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python
简述Java中throw-throws异常抛出
2021/08/07 Java/Android
学习nginx基础知识
2021/09/04 Servers