ES6 -对象的扩展

1.对象简洁语法(属性,方法简化)

let name='aaa';
let age=12;

let obj={
    name,//name
    age, //age:age
    // test:function(){
    //     return this.name; 
    // },
    test(){ //方法同上面的test,不可以用箭头函数
        return this.name;
    },

}
console.log(obj.test());//aaa

2.Object.is() :用来比较两个值是否相等

console.log(Object.is(NaN,NaN));//true
console.log(Object.is(+0,-0));//false

console.log(Object.is({a:1},{a:1}));//false

 3.Object.assign(目标对象,source1,source2,) :用来合并对象

用途:1.复制一个对象 2.合并参数

// 复制对象,不会改变原对象
let arr=[1,2,3];
let arr1=Object.assign([],arr);
console.log(arr1);//[1, 2, 3]
console.log(arr1==arr);false

// 合并参数,对于相同的参数,后面的覆盖前面的
function get(parameter){
    let default1={
        name:'aaa',
        age:12,
        sex:'nv'
    }
    let cur=Object.assign({},default1,parameter);
    console.log(cur);
}

get({name:'su',age:123});//{name: "su", age: 123, sex: "nv"}

 4.循环

Object.keys()

Object.entries();

Object.values();

let {keys,values,entries}=Object;//解构
let json={
    a:1,
    b:2,
    c:3
}
for(let key of keys(json)){
    console.log(key);// a b c
}

for(let value of values(json)){
    console.log(value);// 1 2 3
}

for(let item of entries(json)){
    console.log(item);// ["a", 1] ["b", 2] ["c", 3]
}

for(let [key,value] of entries(json)){
    console.log(key);// a b c
    console.log(value);// 1 2 3
}

 

5.对象扩展运算 ...

 
// 剩余
let {x,y,...z}={x:1,y:2,a:3,b:4};
console.log(x,y,z); //1 2 {a: 3, b: 4}

//深复制
let json={a:1,b:2};
let json2={...json};
console.log(json2);//{a: 1, b: 2}
console.log(json==json2);//false

 

 

 

 

 

 

posted @ 2018-08-24 14:37  yuesu  阅读(143)  评论(0)    收藏  举报