开发中常用的 $.extend 总结
工作中常见$.extend( ),所以就查了一些它的用法。
一、Jquery的扩展方法原型是:
extend(dest, src1, src2, src3...)
它的含义是将src1,src2,src3...合并到dest中,返回值为合并后的dest,由此可以看出该方法合并后,是修改了dest的结构的。如果想要得到合并的结果却又不想修改dest的结构,可以如下使用:
var newSrc = $.extend({}, src1, src2, src3...) //也就是将"{}"作为dest参数
这样就可以将src1, src2, src3...进行合并,然后将结果返回给newSrc。如:
var result = $.extend({}, {name: "Tom", age: 21}, {name: "Jerry", sex: "Boy"})
合并后的结果:
result = {name: "Jerry", age: 21, sex: "Boy"}
也就是说,如果后面的参数和前面的参数相同会覆盖。
二、省略dest参数
上述extend方法原型中的dest参数是可以省略的,如果省略了,则该方法就只能有一个src参数,而且是将src合并到调用extend方法的对象中去,如:
1. $.extend(src)
该方法就是将src合并到jquery的全局对象中去,如:
$.extend({hello: function(){alert('hello');}})
上述代码表示将hello方法合并到jquery的全局对象中。
2.$.fn.extend(src)
该方法将src合并到jquery的实例对象中去,如:
$.fn.extend({
hello: function(){alert('hello');}
});
就是将hello方法合并到jquery的实例对象中。
3.常用扩展实例
● 在jquery全局对象中扩展一个net命名空间:
$.extend({net: {}});
● 将hello方法扩展到之前扩展的jquery的net命名空间中去。
$.extend($.net , {
hello: function(){alert('hello');}
})
三、jquery的extend方法还有一个重载原型
extend(boolean , dest , src1 , src2 , src3...)
第一个参数boolean代表是否进行深度拷贝,其余参数和前面介绍的一致,什么叫深拷贝,我们看一个例子:
var result = $.extend(true , {},
{ name: "John", location: { city: "Boston", county: "USA"}},
{ last: "Resig", location: { state: "MA", county: "China"}});
我们可以看出src1中嵌套子对象location: {city: "Boston"}, src2中也嵌套子对象location:{state: "MA"},第一个深度拷贝参数为true,那么合并后的结果就是:
result = {name: "John", last: "Resig",
location: {city: "Boston", state: "MA", county: "China"}}
也就是说它会将src中的嵌套子对象进行合并,而如果第一个参数boolean为false:
var result = $.extend(false, {},
{ name: "John", location: { city: "Boston", county: "USA"}},
{ last: "Resig", location: { state: "MA", county: "China"}})
那么合并后的结果是:
result = { name: "John", last: "Resig", location: { state: "MA", county: "China"}}
以上就是$.extend()在项目中经常会使用到的一些细节。
开发中常用的 $.extend 总结的更多相关文章
- .net开发中常用的第三方组件
.net开发中常用的第三方组件 2013-05-09 09:33:32| 分类: dotnet |举报 |字号 订阅 下载LOFTER 我的照片书 | RSS.NET.dll RSS. ...
- 依赖注入及AOP简述(十)——Web开发中常用Scope简介 .
1.2. Web开发中常用Scope简介 这里主要介绍基于Servlet的Web开发中常用的Scope. l 第一个比较常用的就是Application级Scope,通常我们会将一 ...
- spring注解开发中常用注解以及简单配置
一.spring注解开发中常用注解以及简单配置 1.为什么要用注解开发:spring的核心是Ioc容器和Aop,对于传统的Ioc编程来说我们需要在spring的配置文件中邪大量的bean来向sprin ...
- Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令
Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Andr ...
- 2019-2-20C#开发中常用加密解密方法解析
C#开发中常用加密解密方法解析 一.MD5加密算法 我想这是大家都常听过的算法,可能也用的比较多.那么什么是MD5算法呢?MD5全称是 message-digest algorithm 5[|ˈmes ...
- 开发中常用的es6知识
结合实际开发,开发中常用的es6的知识: 1.新增let和const命令: ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效: cons ...
- Android开发中常用的库总结(持续更新)
这篇文章用来收集Android开发中常用的库,都是实际使用过的.持续更新... 1.消息提示的小红点 微信,微博消息提示的小红点. 开源库地址:https://github.com/stefanjau ...
- iOS开发中常用的数学函数
iOS开发中常用的数学函数 /*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(,)); //result 9 NSLog(,)); //result 27 //开平方 ...
- Struts2页面开发中常用标签使用说明
1. Struts2页面开发中常用标签使用说明 1.1.往action里传值的使用方式: <input name="userName" type="text&quo ...
随机推荐
- Python基础-类的探讨(class)
Python基础-类的探讨(class) 我们下面的探讨基于Python3,我实际测试使用的是Python3.2,Python3与Python2在类函数的类型上做了改变 1,类定义语法 Python ...
- 安装使用yii-debug-toolbar,yii框架的调试插件
1github 下载yii-debug-toolbar 插件 地址:https://github.com/malyshev/yii-debug-toolbar 2. 假设yii的项目创建在了/expo ...
- C#常用的数据格式转换
用DataFormatString格式化GridView 在 GridView里面显示数据,要显示的数据有好多位小数,就想让它只显示两位小数,在delphi里,直接用DisplayFormat就行了, ...
- 最新FFMPEG解码流程
FFMPEG解码流程: 1. 注册所有容器格式和CODEC: av_register_all() 2. 打开文件: av_open_input_file() 3 ...
- gsoap:实现线程池处理时获取到客户端的ip
问题: 在使用线程池处理客户端请求时发现不能获取到客户端的ip! 原因: 由于在server_loop注循环中只把连接字sock加到queue队列中,并没有客户端IP,所以每一次queue回调 ...
- 基于内容的图片检索CBIR(Content Based Image Retrieval)简介
传统的图像检索过程,先通过人工对图像进行文字标注,再利用关键字来检索图像,这种依据图像描述的字符匹配程度提供检索结果的方法,简称“以字找图”,既耗时又主观多义.基于内容的图像检索客服“以字找图”方式的 ...
- 【实用技巧】去除BootStrap所有圆角效果
满屏的圆角有没有审"美"疲劳啊?教你一键去除所有圆角效果: * { -webkit-border-radius: 0 !important; -moz-border-radius: ...
- [ios2]ASIHTTPReques 清除所有持久连接
http://www.winddisk.com/2012/08/27/iphone_screenlock_network_disconnection/ + (void)clearPersistentC ...
- java基础练习 2
public class Second { /* * 打印出杨辉三角形(要求打印出10行如下图) */ public static void main(String[] args){ int i,j, ...
- iOS 水波效果
将水波效果放在子视图上,主控制器只负责加载 #import "WaveProgress.h" @interface WaveProgress () @property (nonat ...