工作中常见$.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 总结的更多相关文章

  1. .net开发中常用的第三方组件

    .net开发中常用的第三方组件 2013-05-09 09:33:32|  分类: dotnet |举报 |字号 订阅     下载LOFTER 我的照片书  |   RSS.NET.dll RSS. ...

  2. 依赖注入及AOP简述(十)——Web开发中常用Scope简介 .

    1.2.    Web开发中常用Scope简介 这里主要介绍基于Servlet的Web开发中常用的Scope. l        第一个比较常用的就是Application级Scope,通常我们会将一 ...

  3. spring注解开发中常用注解以及简单配置

    一.spring注解开发中常用注解以及简单配置 1.为什么要用注解开发:spring的核心是Ioc容器和Aop,对于传统的Ioc编程来说我们需要在spring的配置文件中邪大量的bean来向sprin ...

  4. Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令

    Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Andr ...

  5. 2019-2-20C#开发中常用加密解密方法解析

    C#开发中常用加密解密方法解析 一.MD5加密算法 我想这是大家都常听过的算法,可能也用的比较多.那么什么是MD5算法呢?MD5全称是 message-digest algorithm 5[|ˈmes ...

  6. 开发中常用的es6知识

    结合实际开发,开发中常用的es6的知识: 1.新增let和const命令: ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效: cons ...

  7. Android开发中常用的库总结(持续更新)

    这篇文章用来收集Android开发中常用的库,都是实际使用过的.持续更新... 1.消息提示的小红点 微信,微博消息提示的小红点. 开源库地址:https://github.com/stefanjau ...

  8. iOS开发中常用的数学函数

    iOS开发中常用的数学函数 /*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(,)); //result 9 NSLog(,)); //result 27 //开平方 ...

  9. Struts2页面开发中常用标签使用说明

    1. Struts2页面开发中常用标签使用说明 1.1.往action里传值的使用方式: <input name="userName" type="text&quo ...

随机推荐

  1. Python基础-类的探讨(class)

    Python基础-类的探讨(class) 我们下面的探讨基于Python3,我实际测试使用的是Python3.2,Python3与Python2在类函数的类型上做了改变 1,类定义语法  Python ...

  2. 安装使用yii-debug-toolbar,yii框架的调试插件

    1github 下载yii-debug-toolbar 插件 地址:https://github.com/malyshev/yii-debug-toolbar 2. 假设yii的项目创建在了/expo ...

  3. C#常用的数据格式转换

    用DataFormatString格式化GridView 在 GridView里面显示数据,要显示的数据有好多位小数,就想让它只显示两位小数,在delphi里,直接用DisplayFormat就行了, ...

  4. 最新FFMPEG解码流程

    FFMPEG解码流程: 1. 注册所有容器格式和CODEC:  av_register_all() 2. 打开文件:                    av_open_input_file() 3 ...

  5. gsoap:实现线程池处理时获取到客户端的ip

    问题: 在使用线程池处理客户端请求时发现不能获取到客户端的ip! 原因:     由于在server_loop注循环中只把连接字sock加到queue队列中,并没有客户端IP,所以每一次queue回调 ...

  6. 基于内容的图片检索CBIR(Content Based Image Retrieval)简介

    传统的图像检索过程,先通过人工对图像进行文字标注,再利用关键字来检索图像,这种依据图像描述的字符匹配程度提供检索结果的方法,简称“以字找图”,既耗时又主观多义.基于内容的图像检索客服“以字找图”方式的 ...

  7. 【实用技巧】去除BootStrap所有圆角效果

    满屏的圆角有没有审"美"疲劳啊?教你一键去除所有圆角效果: * { -webkit-border-radius: 0 !important; -moz-border-radius: ...

  8. [ios2]ASIHTTPReques 清除所有持久连接

    http://www.winddisk.com/2012/08/27/iphone_screenlock_network_disconnection/ + (void)clearPersistentC ...

  9. java基础练习 2

    public class Second { /* * 打印出杨辉三角形(要求打印出10行如下图) */ public static void main(String[] args){ int i,j, ...

  10. iOS 水波效果

    将水波效果放在子视图上,主控制器只负责加载 #import "WaveProgress.h" @interface WaveProgress () @property (nonat ...