zoukankan      html  css  js  c++  java
  • ES6学习总结(五)

    与其说是对象合并,还不如说是JavaScript中对象属性的复制和转移,将多个对象中的属性合并到一个对象中

    1
    2
    3
    4
    5
    6
    7
    8
    var person = {
    name : 'John',
    age : 24
    },
    location = {
    address : 'Location',
    city : 'NewYork'
    } ;
    如何可以做到将上述两个对象中的属性合并到同一个对象中,介绍ES6的一个新的方法,Object.assign,如下:

    1
    Object.assign(target, ...sources) // target为目标对象,sources可以是多个源对象

    这个方法可以帮助我们拷贝多个源对象中所有可以被枚举的自身属性到目标对象中,如果目标对象中的属性与源对象中的属性相同的话,源对象的属性会覆盖目标对象的属性,需要注意的是,这里面可以拷贝的属性必须是可以被枚举的自身属性,一个是可枚举,一个是自身,两个条件是必须的,这个方法作用的过程中,会先调用源对象的getter方法,然后调用目标对象的setter方法,从而达到拷贝属性到目标对象的目的

    大专栏  ES6学习总结(五)y>
    1
    2
    3
    Object.assign(person,location); 

    name , age , address, city */

    在ES6里面我们使用Obj.assign,我们也可以用ES5来模拟Obj.assign,需要注意拷贝自身的可枚举属性

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function (target, source) {
    if (typeof target === 'object' && typeof source === 'object') {
    for (var key in source) {
    if (fromObj.hasOwnProperty(key)) {
    target[key] = source[key];
    }
    }
    }else{
    throw "Assign function can apply only on object";
    }
    }
  • 相关阅读:
    Uploadify跨域上传原理
    C#中HttpClient使用注意:预热与长连接
    前端必读:浏览器内部工作原理
    从零开始学习jQuery
    ManualResetEvent 类的用法
    线程池用法的改进
    我的第一篇博客
    Es6新语法 let篇
    如何测试解析是否生效?
    主机记录和记录值(域名服务器绑定详解)
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12284891.html
Copyright © 2011-2022 走看看