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获取dom 对象 ajax操作 读写cookie函数
Nov 18 Javascript
javascript中怎么做对象的类型判断
Nov 11 Javascript
js点击事件链接的问题解决
Apr 25 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
Dec 09 Javascript
JS创建Tag标签的方法详解
Jun 09 Javascript
vue中如何创建多个ueditor实例教程
Nov 14 Javascript
create-react-app修改为多页面支持的方法
May 17 Javascript
vue中的ref和$refs的使用
Nov 22 Javascript
Vue组件之高德地图地址选择功能的实例代码
Jun 21 Javascript
JavaScript如何获取一个元素的样式信息
Jul 29 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
Jan 21 Javascript
精读《Vue3.0 Function API》
May 20 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
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
Laravel框架控制器的request与response用法示例
2019/09/30 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
jQuery EasyUI 入门必看
2016/06/03 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
node.js操作mysql简单实例
2017/05/25 Javascript
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python Django批量导入数据
2016/03/25 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
Python 音频生成器的实现示例
2019/12/24 Python
自荐信要包含哪些内容
2013/11/06 职场文书
初入社会应届生求职信
2013/11/18 职场文书
合作经营协议书
2014/04/17 职场文书
旷课检讨书范文
2014/10/30 职场文书
2014年医院工作总结
2014/11/20 职场文书
领导工作表现评语
2015/01/04 职场文书
学习保证书100字
2015/02/26 职场文书
学校中秋节活动总结
2015/03/23 职场文书
初中语文教师研修日志
2015/11/13 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
2016年“5.12”国际护士节活动总结
2016/04/06 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL