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 相关文章推荐
获取offsetTop和offsetLeft值的js代码(兼容)
Apr 16 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
Nov 13 Javascript
用js控制组织结构图可以任意拖拽到指定位置
Jan 17 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
Mar 05 Javascript
jquery采用oop模式class类的使用示例
Jan 22 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
May 25 Javascript
Angular ng-class详解及实例代码
Sep 19 Javascript
JS 实现随机验证码功能
Feb 15 Javascript
利用Vue.js实现求职在线之职位查询功能
Jul 03 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
Jun 06 Javascript
vue通信方式EventBus的实现代码详解
Jun 10 Javascript
你不可不知的Vue.js列表渲染详解
Oct 01 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
造就帕卡马拉的帕卡斯是怎么被发现的
2021/03/03 咖啡文化
关于在php.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
PHP学习笔记之二
2011/01/17 PHP
php全排列递归算法代码
2012/10/09 PHP
PHP基于文件存储实现缓存的方法
2015/07/20 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
[JS源码]超长文章自动分页(客户端版)
2007/01/09 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
Vue中axios拦截器如何单独配置token
2019/12/27 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
Nest.js散列与加密实例详解
2021/02/24 Javascript
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
浅谈django中的认证与登录
2016/10/31 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
python学习开发mock接口
2019/04/28 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
抄作业检讨书
2014/02/17 职场文书
法人委托书范本格式
2014/09/15 职场文书
教师考核评语大全
2014/12/31 职场文书
自我检讨报告
2015/01/28 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书