es6注意点

 

 

补救方法:

 

 详情:http://es6.ruanyifeng.com/#docs/array

取出文本内容 

实现深拷贝

jq实现不完全深拷贝

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;
};

  

取巧的方式:

JSON.stringify()和
JSON.parse()

 

posted @ 2018-03-20 16:08  霜末之冬  阅读(148)  评论(0编辑  收藏  举报