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); 
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值