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' // } }