博客列表 >对象与数组的解构赋值和访问器属性

对象与数组的解构赋值和访问器属性

手机用户1580651468
手机用户1580651468原创
2022年11月06日 20:36:31368浏览

对象与数组的解构赋值和访问器属性

一. 实例演示对象与数组的解构赋值

一)数组解构

1.代码如下

  1. // 一)数组解构
  2. [uname,email]=['杨过','123@qq.com'];
  3. console.log(uname,email);
  4. console.log('-----------------');
  5. // 更新
  6. [uname,email]=['小龙女','456@qq.com'];
  7. console.log(uname,email);
  8. console.log('-----------------');
  9. // 1.参数过多
  10. ;[uname,email,gender='女']=['潘金莲','789@qq.com'];
  11. console.log(uname,email,gender);
  12. console.log('-----------------');
  13. // 应用场景:交换两个数
  14. let x = 10
  15. let y = 20
  16. console.log(`x = ${x},y = ${y}`)
  17. ;[y,x]=[x,y]
  18. console.log(`x=${x},y=${y}`)
  19. console.log('-----------------');

2.演示的效果图

二)对象解构

1.代码如下

  1. // 二)对象解构(变量名===属性名)
  2. let {num,price}={num:2,price:5000}
  3. console.log(num,price)
  4. console.log('-----------------');
  5. ;({num,price}={num:5,price:6000})
  6. console.log(num,price)
  7. console.log('-----------------');
  8. // 应用场景1.克隆对象
  9. let lesson ={name:'ES6',score:88}
  10. console.log(lesson)
  11. console.log('-----------------');
  12. let {...obj}=lesson
  13. console.log(obj)
  14. console.log(obj===lesson)
  15. console.log('-----------------');
  16. console.log('-----------------');
  17. // 应用场景2.结构传参
  18. show =function({uname,email}){
  19. return `${uname}:(${email})`
  20. }
  21. let user={uname:'朱老师',email:'498668472@qq.com'}
  22. console.log(show(user));
  23. console.log('-----------------');

2.演示的效果图

二. 实例演示访问器属性,并描述与普通属性之间的区别与联系

一)访问器属性如下图可以基本全部看出


二)访问器属性与数据属性的区别与联系

1.数据属性

  1. 1value: 实际存储属性值的特性
  2. 2writable: 表示能否修改属性的value值。默认为true。如果设置为false则为只读属性
  3. 3enumerable: 表示是否能通过forin循环遍历到该属性。默认为true
  4. 4configurable: 表示是否能通过delete删除该属性,或者能否修改其他特性。默认为true,如果改为false,则属性的其他特性一旦定义就不可修改
  5. 5)数据属性的特性无法直接访问。使用Object.getOwnPropertyDesciptor方法可以查看指定对象、指定属性的特性

2.访问器属性

  1. 1)访问器属性没有valuewritable特性
  2. 2get:读取属性时自动调用的函数。如果不提供,表示不可读取受保护的属性值
  3. 3set: 写入属性值自动调用的函数。如果不提供,表示受保护的属性为只读属性
  4. 4enumerable: 表示是否能通过forin循环遍历到该属性。默认为true
  5. 5)configurable: 表示是否能通过delete删除该属性,或者能否修改其他特性。默认为true,如果改为false,则属性的其他特性一旦定义就不可修改
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议