为什么不问问神奇的海螺呢?|

小阿紫

园龄:3年5个月粉丝:8关注:1

ES6之对象的新特性及新增方法

一、对象中扩展运算符的使用

  • 复制对象

      let obj = { name: "azi", age: 27 };
      let newObj = { ...obj };
      newObj.name = "long";
      console.log(newObj, obj); //{name: 'long', age: 27},{name: 'azi', age: 27}
    
  • 设置对象默认值

      let obj2 = { ...obj, name: "along" };
      console.log(obj2); //{name: 'along', age: 27}
    
  • 合并对象

      let initObj = { height: 175 };
      let obj3 = { ...obj, ...initObj };
      console.log(obj3); //{name: 'azi', age: 27, height: 175}
    
  • 坑点

    简单类型的时候,使用扩展运算符是没问题的,但是如果扩展运算符展开对象以后,还是一个对象的话,我们复制的只是指针 !

      let objErr = {
        name: "longlong",
        like: {
          one: "basketball",
          two: "swimming",
        },
      };
      let objSucc = { ...objErr };
      objSucc.like.one = "run";
      console.log(objSucc, objErr);
    

二、属性初始化的简写

  {
    let name = "小明";
    let age = 18;
    //es5属性初始化写法
    let es5_Obj = {
      name: name,
      age: age,
      sayHello: function () {
        console.log("this is es5Obj");
      },
    };
    //es6属性初始化写法
    let es6_Obj = {
      name,
      age,
      sayHello() {
        console.log("this is es6Obj");
      },
    };
  }

三、可计算的属性名

  {
    //可计算的属性名
    let key = "name";
    let es5Obj = {};
    es5Obj[key] = "小明";
    let es6Obj = {
      [key]: "小红",
    };
    console.log(es5Obj, es6Obj); //{name: '小明'} {name: '小红'}
  }

四、新增方法

  • Object.is() 和 ===

    Object.is() 方法判断两个值是否为同一个值。

      let result = Object.is(NaN, NaN);
      console.log(result, NaN === NaN); // true, false
      console.log(Object.is([], [])); // false
    
  • Object.assign()

    Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。

      const my = {
        name: "azi",
        age: 27,
        info: {
          height: 175,
          weight: 70,
        },
      };
      //复制一个对象
      let my_copy = Object.assign({}, my);
      my_copy.age = 18;
      console.log(my_copy);
    
  • Object.keys()

    遍历对象,返回对象中每一项key的数组

      const json = {
        name: "azi",
        age: 27,
        birthday: 1995,
      };
      console.log(Object.keys(json)); //['name', 'age', 'birthday']
    
  • Object.values()

    返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值

    console.log(Object.values(json)); //['azi', 27, 1995]

  • Object.entries()

    返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对数组

    console.log(Object.entries(json)); //[["name","azi"],["age",27],["birthday",1995]]

本文作者:晴天小猪小阿紫

本文链接:https://www.cnblogs.com/chenzilong/p/16247343.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   小阿紫  阅读(85)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 人世间 Audio artist
  2. 2 风吹过八千里 Audio artist
人世间 - Audio artist
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 唐恬

作曲 : 钱雷

编曲 : 钱雷

制作人 : 钱雷

草木会发芽孩子会长大

岁月的列车不为谁停下

命运的站台悲欢离合都是刹那

人像雪花一样飞很高又融化

世间的苦啊爱要离散雨要下

世间的甜啊走多远都记得回家

平凡的我们撑起屋檐之下一方烟火

不管人世间多少沧桑变化

祝你踏过千重浪

能留在爱人的身旁

在妈妈老去的时光

听她把儿时慢慢讲

也祝你不忘少年样

也无惧那白发苍苍

若年华终将被遗忘记得你我

火一样爱着

人世间值得

Wu~~~~~~

有多少苦乐就有多少种活法

有多少变化太阳都会升起落下

平凡的我们一身雨雪风霜不问去哪

随四季枯荣依然迎风歌唱

祝你踏过千重浪

能留在爱人的身旁

在妈妈老去的时光

听她把儿时慢慢讲

也祝你不忘少年样

也无惧那白发苍苍

我们啊像种子一样

一生向阳

在这片土壤

随万物生长

弦乐编写 : 胡静成

大提琴 : 郎莹

弦乐 : 国际首席爱乐乐团

弦乐录音 : 王小四@金田录音棚

吉他 : 高飞

配唱编写 : 钱雷

人声录音 : 杨惠琳@Studio 21A

人声录音室 : Studio 21A Beijing

Vocal edited : 汝文博@SBMS Beijing

混音&母带 : 赵靖BIG.J@SBMS Beijing