ES6——对象扩展

ES6对对象进行了一系列的扩展,其中包括书写方式及函数;

1、对象简写

2、可计算属性

    let name = 'angela';
    let front = 'lee-';
    let obj = {
        name, // kv 相同,简写
        getName() {
            console.log(name);
        }, // 等同于 getName: function() {}
        [front + name]: name // 可扩展属性;
    }
    obj.getName();

3、关于对象新增的方法;

静态方法: Object.is() (勉强这么说…加强的比较运算符)

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

Object.assign(obj1,obj2,obj3,...,objn) mix-in 将对象混合,将obj2-objn克隆到obj1中; 

    let obj = {
        name: 'angela'
    }
    let obj1 = {
        age: 18
    }
    let obj2 = {
        age: 16,
        name: 'limin',
        sex: 'female'
    }
    var objM = Object.assign(obj,obj1,obj2);
    console.log(objM); // objM = {name:'limin',age:'16'.sex:'female'}
    obj.name = 'this has been changed';
    obj2.age = 22; // 深度克隆
    console.log(objM); // name 改变了
    console.log(objM === obj); // true 返回obj,并没有生成新对象,而是对obj进行操作
    var obj = {
        name: 'angela',
        age: 18,
        sex: 'female'
    }
    var obj1 = {
        name: 'angela'
    }
    console.log(Object.keys(obj));  //拿出对象的key值,数组形式 ['name','age','sex']
    console.log(Object.values(obj)); // 拿出对象的value值,数组形式 ['angela',18,'female']
    console.log(Object.entries(obj)) // 拿出对象的key-value值,数组形式[['name','angela'],['age',18],['sex','female']];
    Object.setPrototypeOf(obj,obj1) // 将obj的原型设置为obj1
    console.log(Object.getPrototypeOf(obj));  // 获取obj1的原型;obj1 = {}
    console.log(obj1.isPrototypeOf(obj)); //true

猜你喜欢

转载自blog.csdn.net/weixin_41265663/article/details/82971880