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 相关文章推荐
jquery高效反选具体实现
May 05 Javascript
JS动态改变浏览器标题的方法
Apr 06 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
Jun 10 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
Jan 17 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
Oct 31 Javascript
jQuery 实现左右两侧菜单添加、移除功能
Jan 02 jQuery
clipboard在vue中的使用的方法示例
Oct 19 Javascript
jQuery事件委托代码实践详解
Jun 21 jQuery
javascript自定义日期比较函数用法示例
Jul 22 Javascript
微信小程序实现写入读取缓存详解
Aug 30 Javascript
JS+CSS实现随机点名(实例代码)
Nov 04 Javascript
JS获取表格视图所选行号的ids过程解析
Feb 21 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
制作美丽的拉花
2021/03/03 冲泡冲煮
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
8个PHP数组面试题
2015/06/23 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
javaScript parseInt字符转化为数字函数使用小结
2009/11/05 Javascript
jquery中添加属性和删除属性
2015/06/03 Javascript
ionic实现可滑动的tab选项卡切换效果
2020/04/15 Javascript
jQuery制作全屏宽度固定高度轮播图(实例讲解)
2017/07/08 jQuery
微信小程序组件传值图示过程详解
2019/07/31 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
Python sys.path详细介绍
2013/10/17 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
在Django的session中使用User对象的方法
2015/07/23 Python
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
python实现求最长回文子串长度
2018/01/22 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
Python实现账号密码输错三次即锁定功能简单示例
2019/03/29 Python
python 整数越界问题详解
2019/06/27 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
Python字符串及文本模式方法详解
2020/09/10 Python
Python基于爬虫实现全网搜索并下载音乐
2021/02/14 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
CSS3制作ajax loader icon实现思路及代码
2013/08/25 HTML / CSS
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
大一学生假期实习的自我评价
2013/10/12 职场文书
个人优缺点自我评价
2014/01/27 职场文书
垃圾分类的活动方案
2014/08/15 职场文书
个人专业技术总结
2015/03/05 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL
Python中使用subprocess库创建附加进程
2021/05/11 Python
python 如何用terminal输入参数
2021/05/25 Python