• Object.assign()深拷贝的用法、以及在IE浏览器不兼容的解决方案


    原文链接:https://blog.csdn.net/lgysjfs/java/article/details/91429600

    1、Object.assign()的用法

    ES5提供的Object.assign()原型方法,主要是用来解决拷贝出来的新对象和原来的对象不相互影响的问题。

    主要用法有:

    一、复制一个对象

    let obj1 = { a: 0 , b: { c: 0}}; 
    let obj2 = Object.assign({}, obj1); 
    console.log(JSON.stringify(obj2)); // { a: 0, b: { c: 0}}

    二、合并多个对象

    const o1 = { a: 1, b: 1, c: 1 };
    const o2 = { b: 2, c: 2 };
    const o3 = { c: 3 };
     
    const obj = Object.assign({}, o1, o2, o3);
    console.log(obj); // { a: 1, b: 2, c: 3 }

    更多用法可以查看 ——》MDN文档

    2、IE浏览器不兼容Object.assign()

    解决办法:重写Object.assign()的原型方法

    if (typeof Object.assign != 'function') {
        Object.assign = function(target) {
            'use strict';
            if (target == null) {
                throw new TypeError('Cannot convert undefined or null to object');
            }
     
            target = Object(target);
            for (var index = 1; index < arguments.length; index++) {
                var source = arguments[index];
                if (source != null) {
                    for (var key in source) {
                        if (Object.prototype.hasOwnProperty.call(source, key)) {
                            target[key] = source[key];
                        }
                    }
                }
            }
            return target;
        };
    }
  • 相关阅读:
    轮播效果
    获取用户请求过来的URL
    前端框架——AmazeUI学习
    评论功能——多说插件学习
    SqlServer中——查找杀死阻塞进程
    Java 时区(转)
    大型网站技术演进的思考(转)
    elasticsearch threadpool
    UML 类图
    elasticsearch No node available
  • 原文地址:https://www.cnblogs.com/sunnywindycloudy/p/13372325.html
Copyright © 2020-2023  润新知