ES6 新增的Object(对象)API

ES6中对于Object的拓展主要是静态方法的拓展.

目录

1.Object.is(a,b);         判断a和b的值是否相等

  2.Object.assign(); 

      ①对象的深拷贝        Object.assign(o,obj)

    ②Object.assign(o,obj,obj1);  合并对象

  3.  Object.setPrototypeOf()    设置原型对象中的方法

  4.     Object.getPrototypeOf(obj) 获取原型对象中的方法

  5.Object.keys()  Object.values()   Object.entries()


1.Object.is(a,b);         判断a和b的值是否相等

        这个方法和js的严格判断(===)用法基本一致,只是在对于 -0 和 +0 以及NaN的判断上做了改善

         console.log(1===1);//true

        console.log(Object.is(1,1));//true

        console.log(Object.is(1,2));//false

        console.log(+0===-0)//true

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

        console.log(NaN===NaN);//false

        console.log(Object.is(NaN,NaN));//true

  2.Object.assign(); 

      ①对象的深拷贝        Object.assign(o,obj)

    let o={};

    let obj={

            name:"zhangsan",

            age:12

        }

      let result=Object.assign(o,obj);  把obj中的内容复制到o对象当中并返回o对象

      console.log(o)        //{ name: 'zhangsan', age: 12 }

      console.log(result);         //{ name: 'zhangsan', age: 12 }

    console.log(o === result)        //true

    ②Object.assign(o,obj,obj1);  合并对象

 三个参数代表的是合并对象obj,obj1到o当中并返回o对象

  let o={}

   let obj={

   name:"zhangsan",

        age:12

     }

     let obj1={

         name:"lisi",

         gender:1

     }

  let result=Object.assign(o,obj,obj1);        //若obj2、obj3中有相同属性,则后面的覆盖前面的

 console.log(o);       //{ name: 'lisi', age: 12, gender: 1 }

 console.log(result);        //{ name: 'lisi', age: 12, gender: 1 }

  3.  Object.setPrototypeOf()    设置原型对象中的方法

Object.setPrototypeOf(obj1,obj2)    为目标对象设置原型,将obj2设置成obj1的原型

let obj1 = {}

let obj2 = {

        age:12,

        name:'zhangsan'

}

Object.setPrototypeOf(obj1,obj2)

console.log(obj1.__proto__);      //{ age: 12, name: 'zhangsan' }   直接访问prototype

或 console.log(Object.getPrototypeOf(obj1));     //{ age: 12, name: 'zhangsan' }

  4.     Object.getPrototypeOf(obj) 获取原型对象中的方法

    let obj={

    name:"",

    age:1

    }

    console.log(obj.__proto__);

    console.log(obj.constructor.prototype)

    console.log(Object.getPrototypeOf(obj))

  5.Object.keys()  Object.values()   Object.entries()

  let obj={

    name:'terry',

    age:12

    }

    // 获取所有属性名组成的数组

    console.log(Object.keys(obj));        //[ 'name', 'age' ]

    // 获取所有属性值组成的数组

    console.log(Object.values(obj));        //[ 'terry', 12 ]

    // 获取键值对组成的数组

    console.log(Object.entries(obj));        //[ [ 'name', 'terry' ], [ 'age', 12 ] ]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值