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 相关文章推荐
关于递归运算的顺序测试代码
Nov 30 Javascript
提交按钮的name='submit'引起的js失效问题及原因
Feb 25 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
Apr 06 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
Oct 31 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
Nov 16 Javascript
Vue.JS入门教程之自定义指令
Dec 08 Javascript
微信JSAPI支付操作需要注意的细节
Jan 10 Javascript
jquery实现企业定位式导航效果
Jan 01 jQuery
JavaScript获取用户所在城市及地理位置
Apr 21 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
Jun 08 Javascript
JS实现躲避粒子小游戏
Jun 18 Javascript
express异步函数异常捕获示例详解
Nov 30 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学习之数组的定义和填充
2011/04/17 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
JavaScript中Array 对象相关的几个方法
2006/12/22 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
JS+CSS实现六级网站导航主菜单效果
2015/09/28 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
微信小程序 教程之WXML
2016/10/18 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
JS实现Cookie读、写、删除操作工具类示例
2018/08/28 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
举例介绍Python中的25个隐藏特性
2015/03/30 Python
分析Python中设计模式之Decorator装饰器模式的要点
2016/03/02 Python
Python变量和字符串详解
2017/04/29 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
Django 连接sql server数据库的方法
2018/06/30 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
HTML5应用之文件上传
2016/12/30 HTML / CSS
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
法人委托书的范本格式
2014/09/11 职场文书
捐款仪式主持词
2015/07/04 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
小学体育组工作总结
2015/08/13 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers