jQuery extend 的简单实例


Posted in Javascript onSeptember 18, 2013
jQuery.extend = jQuery.fn.extend = function() {
    var options, name, src, copy, copyIsArray, clone,
        target = arguments[0] || {},
        i = 1,
        length = arguments.length,
        deep = false;
    // Handle a deep copy situation
    if ( typeof target === "boolean" ) {
        deep = target;
        target = arguments[1] || {};
        // skip the boolean and the target
        i = 2;
    }
    // Handle case when target is a string or something (possible in deep copy)
    if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
        target = {};
    }
    // extend jQuery itself if only one argument is passed
    if ( length === i ) {
        target = this;
        --i;
    }
    for ( ; i < length; i++ ) {
        // Only deal with non-null/undefined values
        if ( (options = arguments[ i ]) != null ) {
            // Extend the base object
            for ( name in options ) {
                src = target[ name ];
                copy = options[ name ];
                // Prevent never-ending loop
                if ( target === copy ) {
                    continue;
                }
                // Recurse if we're merging plain objects or arrays
                if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
                    if ( copyIsArray ) {
                        copyIsArray = false;
                        clone = src && jQuery.isArray(src) ? src : [];
                    } else {
                        clone = src && jQuery.isPlainObject(src) ? src : {};
                    }
                    // Never move original objects, clone them
                    target[ name ] = jQuery.extend( deep, clone, copy );
                // Don't bring in undefined values
                } else if ( copy !== undefined ) {
                    target[ name ] = copy;
                }
            }
        }
    }
    // Return the modified object
    return target;
};
Javascript 相关文章推荐
jquery 选择器引擎sizzle浅析
Feb 06 Javascript
javaScript实现浮点数转十六进制字符
Oct 29 Javascript
jquery xMarquee实现文字水平无缝滚动效果
Apr 29 Javascript
JS来动态的修改url实现对url的增删查改
Sep 05 Javascript
jQuery实现form表单元素序列化为json对象的方法
Dec 09 Javascript
js事件处理程序跨浏览器解决方案
Mar 27 Javascript
jQuery弹出层插件popShow(改进版)用法示例
Jan 23 Javascript
基于jquery日历价格、库存等设置插件
Jul 05 jQuery
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 jQuery
React+Webpack快速上手指南(小结)
Aug 15 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
Sep 27 Javascript
JavaScript中.min.js和.js文件的区别讲解
Feb 13 Javascript
Javascript中Event属性搜集整理
Sep 17 #Javascript
js获取html文件的思路及示例
Sep 17 #Javascript
JS的Document属性和方法小结
Sep 17 #Javascript
JS画5角星方法介绍
Sep 17 #Javascript
js带按钮的提示框可供选择示例代码
Sep 17 #Javascript
今天是星期几的4种JS代码写法
Sep 17 #Javascript
关于javascript event flow 的一个bug详解
Sep 17 #Javascript
You might like
逐步提升php框架的性能
2008/01/10 PHP
PHP令牌 Token改进版
2008/07/18 PHP
php print EOF实现方法
2009/05/21 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
js类的静态属性和实例属性的理解
2009/10/01 Javascript
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
Vue可自定义tab组件用法实例
2019/10/24 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
python读取word文档的方法
2015/05/09 Python
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
python利用tkinter实现屏保
2019/07/30 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
污水厂厂长岗位职责
2014/01/04 职场文书
社会学专业求职信
2014/07/17 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
公司内部升职自荐信
2015/03/27 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
教师节主题班会教案
2015/08/17 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python