ES2015(对象扩展方法)

109 阅读1分钟
  1. Object.assign 方法

      1.1 将多个源对象中的属性复制到一个目标对象中

// const source1 = { 

// a: 123, 

// b: 123

 // }

 // const source2 = { 

// b: 789,

 // d: 789

 // }

 // const target = {

 // a: 456, 

// c: 456 

// } 

// 第一个是目标对象,所有的对象会被复盖到这个对象当中 ,如果后一个属性名和目标属性名一致会被覆盖

// const result = Object.assign(target, source1, source2) 

 // console.log(target) 

2 .   Object.is (同值比较的算法,返回ture或false)

  console.log( 

     NaN === NaN // false

     Object.is(NaN,NaN) // true 

3.  Proxy (给对象设置访问代理器的)

// const person = { 

// name: 'zce', 

// age: 20 

// } 

 // const personProxy = new Proxy(person, { 

// person 目标对象 

// // 监视属性读取

 // get (target, property) {

 // return property in target ? target[property] : 'default'

 // // console.log(target, property)

 // // return 100 

// }, 

// // 监视属性设置 

 // // 第一个参数是代理目标对象, 写入的属性名称,写入的属性值 

// set (target, property, value) { 

// if (property === 'age') { 

// if (!Number.isInteger(value)) { 

// throw new TypeError(${value} is not an int)

 // }

 // }

 // target[property] = value 

// // console.log(target, property, value) 

// } 

// }) 

 // personProxy.age = 100 

 // personProxy.gender = true 

 // console.log(personProxy.name)

 // console.log(personProxy.xxx)

4 . definedProperty 和Proxy 的区别

 4.1   优势1:

  definedProperty 只能监听属性的读写

   Proxy 可以监视读写以外的操作

优势2:

   Proxy 可以很方便的监视数组操作

优势3:

Proxy 不需要侵入对象