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 相关文章推荐
用jscript实现新建和保存一个word文档
Jun 15 Javascript
用jscript启动sqlserver
Jun 21 Javascript
javascript基础第一章 JavaScript与用户端
Jul 22 Javascript
javascript类型转换示例
Apr 29 Javascript
javascript获得当前的信息的一些常用命令
Feb 25 Javascript
javascript实现tab切换的四种方法
Nov 05 Javascript
基于javascript实现最简单的选项卡切换效果
May 16 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
Jul 25 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
Mar 15 Javascript
微信JSAPI Ticket接口签名详解
Jun 28 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
Mar 07 Javascript
谈谈JavaScript令人迷惑的==与+
Aug 31 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
SAE实时日志接口SDK用法示例
2016/10/09 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&”)
2016/12/23 Javascript
html5+canvas实现支持触屏的签名插件教程
2017/05/08 Javascript
cocos creator Touch事件应用(触控选择多个子节点的实例)
2017/09/10 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
[00:58]PWL开团时刻DAY5——十人开雾0换5
2020/11/04 DOTA
一篇不错的Python入门教程
2007/02/08 Python
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
python创建临时文件夹的方法
2015/07/06 Python
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
python实现控制台打印的方法
2019/01/12 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
制作部班长职位说明书
2014/02/26 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
平面设计专业求职信
2014/08/09 职场文书
故意伤害人身损害赔偿协议书
2014/11/19 职场文书
学校食品安全责任书
2015/01/29 职场文书
办公用品质量保证书
2015/05/11 职场文书
学雷锋主题班会教案
2015/08/13 职场文书
redis实现排行榜功能
2021/05/24 Redis
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js
Python绘画好看的星空图
2022/03/17 Python