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如何判断不同系统的浏览器类型
Oct 28 Javascript
jquery调取json数据实现省市级联的方法
Jan 29 Javascript
angularjs学习笔记之简单介绍
Sep 26 Javascript
深入理解MVC中的时间js格式化
May 19 Javascript
浅谈vue中数据双向绑定的实现原理
Sep 14 Javascript
详解如何制作并发布一个vue的组件的npm包
Nov 10 Javascript
微信小程序使用二次贝塞尔曲线画波浪
Dec 25 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
May 17 Javascript
vue遍历生成的输入框 绑定及修改值示例
Oct 30 Javascript
如何利用JavaScript编写更好的条件语句详解
Aug 10 Javascript
jQuery中getJSON跨域原理的深入讲解
Sep 02 jQuery
jQuery实现日历效果
Sep 11 jQuery
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/05/08 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
jQuery实现tab选项卡效果的方法
2015/07/08 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
JavaScript中创建对象的模式汇总
2016/04/19 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
JavaScript动态添加事件之事件委托
2016/07/12 Javascript
浅析JavaScriptSerializer类的序列化与反序列化
2016/11/22 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
微信小程序实现获取准确的腾讯定位地址功能示例
2019/03/27 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
Linux下编译安装MySQL-Python教程
2015/02/02 Python
Python进阶学习之特殊方法实例详析
2017/12/01 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
深入浅析Python的类
2018/06/22 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
2020/12/11 Python
求职简历的自我评价怎样写好
2013/10/07 职场文书
五型班组建设方案
2014/02/10 职场文书
国贸专业求职信
2014/06/28 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
感恩父母主题班会
2015/08/12 职场文书
小学记事作文之200字
2019/08/06 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python