es6新增api

ES6新增Api

对象Api扩展

1、Object.is(),判断两个值是否相等

Object.is(-1,+1) //false 不仅判断值还判断符号
Object.is(NaN,NaN) //ture

Object.assign()
(1)两个参数时,实现的是对象的复制、拷贝
返回值:返回第一个参数

let obj = {
   
   }
let obj1 = {
   
   
  name:"zhangsan",
  age:19
}
 
let res = Object.assign(obj,obj1) 
console.log(res,obj); //{ name: 'zhangsan', age: 19 } { name: 'zhangsan', age: 19 }
console.log(res===obj); //true

Object.assign()方法实现的是半深拷贝,半深拷贝指的是被复制的对象里面有引用数据类型,实现的就是半深拷贝;而深拷贝指的是被复制的对象里是基本数据类型,实现的就是深拷贝。

let obj = {
   
   }
let obj1 = {
   
   
  name:"zhangsan",
  age:19,
  class:{
   
   
    number:'2022'
  }
}
 
let res = Object.assign(obj,obj1)
obj.name = 'lisi'
obj.class.number = '12345'
console.log(obj,obj1); //{ name: 'lisi', age: 19, class: { number: '12345' } } { name: 'zhangsan', age: 19, class: { number: '12345' } }

(2)三个参数时,表示合并对象,把后两个对象合并到第一个对象,并返回第一个对象

let obj = {
   
   }
let obj1 = {
   
   name:"zhangsan",age:10}
let obj2 = {
   
   gender:'male'}
let res = Object.assign(obj,obj1,obj2)
console.log(res,obj); //{ name: 'zhangsan', age: 10, gender: 'male' } { name: 'zhangsan', age: 10, gender: 'male' }
console.log(res===obj); //true

3、获取原型对象的方法
(1)obj.proto

(2)obj.constructor.prototype

(3)Object.getPrototypeOf(obj)

let obj = {
   
   
  name:"zhangsan"
}
console.log(obj.__proto__); //[Object: null prototype] {}
console.log(obj.constructor.prototype); //[Object: null prototype] {}
console.log(Object.getPrototypeOf(obj)); //[Object: null prototype] {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值