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 相关文章推荐
让Firefox支持event对象实现代码
Nov 07 Javascript
同时使用n个window onload加载实例介绍
Apr 25 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
Mar 28 Javascript
推荐一个自己用的封装好的javascript插件
Jan 29 Javascript
jQuery简单实现提交数据出现loading进度条的方法
Mar 29 Javascript
微信小程序使用第三方库Underscore.js步骤详解
Sep 27 Javascript
js实现固定宽高滑动轮播图效果
Jan 13 Javascript
Angular实现的进度条功能示例
Feb 18 Javascript
js类的继承定义与用法分析
Jun 21 Javascript
electron实现静默打印的示例代码
Aug 12 Javascript
TypeScript之调用栈的实现
Dec 31 Javascript
vue缓存之keep-alive的理解和应用详解
Nov 02 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 不错的学习资料
2009/02/06 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
Javascript中的isNaN函数使用说明
2011/11/10 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
如何通过setTimeout理解JS运行机制详解
2019/03/23 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
Python中表示字符串的三种方法
2017/09/06 Python
python图像和办公文档处理总结
2019/05/28 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
python3+django2开发一个简单的人员管理系统过程详解
2019/07/23 Python
django 环境变量配置过程详解
2019/08/06 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
Python实现打印实心和空心菱形
2019/11/23 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
Python图像读写方法对比
2020/11/16 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
企业管理部经理岗位职责
2013/12/24 职场文书
秋季运动会活动方案
2014/02/05 职场文书
会计人员岗位职责
2015/02/03 职场文书
修改MySQL的数据库引擎为INNODB的方法
2021/05/26 MySQL
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android