ES6-----学习系列八(对象扩展)

一、对象的简洁表示法  

{
  // 简洁表示法
  let o=1;
  let k=2;
  let es5={
    o:o,
    k:k
  };
  let es6={
    o,
    k
  };
  console.log(es5,es6);

  let es5_method={
    hello:function(){
      console.log('hello');
    }
  };
  let es6_method={
    hello(){
      console.log('hello');
    }
  };
  console.log(es5_method.hello(),es6_method.hello());
}

二、属性表达式 

{
  // 属性表达式
  let a='b';
  let es5_obj={
    a:'c',
    b:'c'
  };

  let es6_obj={
    [a]:'c' //[]里面就是一个表达式  这里相当于b:c
  }

  console.log(es5_obj,es6_obj);

}

三、新增api (Object.is()判断两个是否相等  相当于===        Object.assign()方法将源对象(source)的所有可枚举属性,复制到目标对象(target) 同名属性会进行覆盖  并且只进行浅拷贝)   

{
  // 新增API
  console.log('字符串',Object.is('abc','abc'),'abc'==='abc');//true true
  console.log('数组',Object.is([],[]),[]===[]);//false false

  console.log('拷贝',Object.assign({a:'a'},{b:'b'}));//{a:'a',b:'b'} 

  let test={k:123,o:456};
  for(let [key,value] of Object.entries(test)){//这个和数组的entries是一样的,这里就不赘余了
    console.log([key,value]);
  }
}

四、扩展运算符 (这个babel支持的不是很好)  

{
  // 扩展运算符
  // let {a,b,...c}={a:'test',b:'kill',c:'ddd',d:'ccc'};
  // c={
  //   c:'ddd',
  //   d:'ccc'
  // }
}
原文地址:https://www.cnblogs.com/diasa-fly/p/7007559.html