es6学习笔记整理(七)对象扩展

简洁表示法
            //第一种
            let a = 1;
            let b = 2;
            let es5 = {
                a:a,
                b:b
            };

            let es6 = {
                a,
                b
            };
            console.log(es5, es6);//{a:1,b:2}

            //第二种
            let es5_method = {
                test: function(){
                    console.log("es5_M");
                }
            };
            let es6_method = {
                test(){
                    console.log("es6_M");
                }
            };
            es5_method.test();//es5_M
            es6_method.test();//es6_M
属性表达式
            let a = 'b';
            let es5_obj = {
                a: 'c',
                b: 'c'
            };
            let es6_obj = {
                [a]: 'c'
            };
            console.log(es5_obj, es6_obj);//{a: "c", b: "c"} {b: "c"} 对象名是变量的时候实用
扩展运算符
  • 扩展运算符
  • babel-polyfill对扩展运算符的支持不是很友好,所以这里提一嘴而已
    let {a,b,c} = {a:'1', b:'2',c:'3', d:'4', e:'5'};
Object新增方法
  • Object.is()判断相等,功能类似 ===
  • 数组是引用类型,所以[]不等于[]
            console.log('字符串', Object.is('asd','asd'), 'abc' === 'abc');//true true
            console.log('数组', Object.is([], []), [] === []);//false false
  • Object.assign()
  • 浅拷贝,不可以拷贝不可枚举的属性
            var obj = {a:[1,{c: '3'}],b:'2'};
            console.log('浅拷贝', Object.assign(obj));//{a: "1", b: "2"}
            Object.assign(obj).a[1].c = 5;
            console.log(obj);//obj中对象c等于5,浅拷贝
  • Object.entries()
  • 返回下标、元素
            let obj1 = {a:'123','b':'456'};
            for(let [key,value] of Object.entries(obj1)){
                console.log([key,value]);
            }

你可能感兴趣的:(es6学习笔记整理(七)对象扩展)