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); 
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ES6 对象拓展是 JavaScript 中一个非常有用的特性,它允许我们更方便地创建、复制和合并对象。下面是一些关于 ES6 对象拓展的笔记和相关代码示例: 1. 对象字面量简写: ES6 允许我们在对象字面量中使用简写语法来定义属性和方法。例如,如果属性名和变量名相同,我们可以省略冒号和变量名,只写属性名即可。 ```javascript const name = "John"; const age = 30; const person = { name, age, sayHello() { console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`); } }; person.sayHello(); // 输出:Hello, my name is John and I'm 30 years old. ``` 2. 属性名表达式: ES6 允许我们在对象字面量中使用表达式作为属性名。这样可以更灵活地动态生成属性。 ```javascript const prefix = "user_"; const prop = "name"; const user = { [`${prefix}${prop}`]: "John" }; console.log(user.user_name); // 输出:John ``` 3. 对象拷贝: ES6 提供了一种更简洁的方式来拷贝对象,即使用对象拓展运算符(...)。 ```javascript const person = { name: "John", age: 30 }; const copiedPerson = { ...person }; console.log(copiedPerson); // 输出:{ name: "John", age: 30 } ``` 4. 对象合并: ES6 提供了一种合并多个对象的方法,即使用对象拓展运算符(...)和 Object.assign() 方法。 ```javascript const person = { name: "John" }; const details = { age: 30, profession: "Developer" }; const mergedPerson = { ...person, ...details }; console.log(mergedPerson); // 输出:{ name: "John", age: 30, profession: "Developer" } ``` 这些是关于 ES6 对象拓展的一些笔记和代码示例。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值