zoukankan      html  css  js  c++  java
  • 对象的扩展-02

    解构赋值

    对象的解构赋值,用于从一个对象取值,相当于将所有可遍历的,但尚未被读取的属性分配到指定对象上面。

    所有的键和它们的值都会复制到新对象上面

    let {x , y , ...z } = {x:1,y:2, a:3 , b:4 };

    x  // 1

    y  // 2

    z  // {a:3,b:4 }

    由于解构赋值要求等号右边是一个对象,所以如果等号右边是 undefined 或 null 就会报错,因为他们无法转为对象

    let {x , y , ...z }  = null;  // 报错

    let {x , y , ...z }  = undefined;  // 报错

    解构赋值必须是最后一个参数,否则报错

    let {...x , y , z } = obj  // 报错

    解构赋值的复制是浅复制

    解构赋值不会复制继承自原型对象的属性

    扩展运算符 ( ... )

    用于取出参数对象,所有可遍历属性,并将其复制到当前对象中

    let z = { a:3, b: 4};

    let n = { ...z };

     n  // { a:3, b: 4}

    等同于 Object.assign()方法

    扩展运算符可用于合并两个对象

    let ab = { ...a , ...b };

    如果用户自定义属性放在扩展运算符后面,则扩展运算符的同名属性会被覆盖

    let  obj = { ...a , x: 1, y: 2 };

    与数组扩展运算符一样,对象的扩展运算符后面也可以带有表达式

    const obj = {

      ...(x > 1 ? {a: 1} : {},

      b: 2

    }

    如果扩展运算符的参数是null或 undefined 则这两个值会被忽略,不会报错

  • 相关阅读:
    array方法(一)
    浅谈开发中所注意的问题
    缩略图初版
    Finite State Machine
    mMathf -》 Unity3d通用脚本
    Follow Path -》 Unity3d通用脚本
    Google 网站打不开
    MonoBehaviour.StopCoroutine
    Tutorial Unity 4 apk splitting into OBB for google play
    NGUI List<EventDelegate> 小坑
  • 原文地址:https://www.cnblogs.com/jeff-zhu/p/12031942.html
Copyright © 2011-2022 走看看