es6对象功能拓展+解构

es6拓展的对象方法

  • Object .is() 比较两个参数是否彻底一致,与全等区分(例NAN全等返回false)
  • Object.assign() 将后面参数对象熟悉赋给参数1对象
  • Object.setPrototypeOf(对象,新原型对象) 改变对象原型,同理get...为获得原型
  • super 覆盖对象实例的一个方法、但依然要调用原型上的同名方法,咱们以前知道对象与原型重名会调用自身,看一个实例:
    let describe{
         test() {
             return "is a good boy";
         }
     }
     let person{
         test() {
             return "tianming" + super.name();
             //等价于return "tianming"+describe.test.call(this);
         }
     }
     Object.setPrototypeOf(person,describe);
     console.log(person.test());
    复制代码

解构

  • 常看法构 解构存在主要是便于数据的提取,对象数组均可以用解构来提取数据
    let person = {
         name: '天明',
         age: '19',
         sex: 'male'
     }
     let { name: myname, age, sex } = person;
     console.log(myname, age, sex);
     let arr = [1, 2, 3];
     let [ a, b, c, d = 4 ] = arr;
     let [ , ,lastnumber ] = arr; 
     console.log(a, b, c, d);    
     console.log(lastnumber);
    复制代码
    当解构参数多余实际内容时,解构变量值为undefined,一样的像以前参数同样咱们能够给他们附上初始化值格式也是同样的,解构时也能够修该对象属性名,案例中name:myname这一步,解构也是能够嵌套的,多层关系,数组的解构还能够,空变量只取后面的,如案例中lastnumber。
  • 数组解构赋值以及应用:
    let arr = [a = 1, b = 2, c = 3];
     [ a, b, c ] = arr;
     // 实现变量值交换
     let c = 1,
         d = 2;
     [ a, b ] = [ b, a ];
    复制代码
    剩余项也能够用到解构之中
    // 克隆数组
     let arr = [1, 2, 3];
     let [ ...arr1 ] = arr;
    复制代码
  • 参数解构 传递参数时咱们一样也能够采用解构的方式来,解构方式当作参数当没有传递该为参数时会报错咱们要在解构时给他们加上一个空对象或空数组才行
    let arr = [1, 2];
     function add(a, [ b, c ] = []){
         return a + b + c; 
     }
     add(1);  // 没传递时参数默认为解构值undefined
     add(1, arr); 
    复制代码
相关文章
相关标签/搜索