博客列表 >0401作业-解构与访问器属性

0401作业-解构与访问器属性

千山暮雪
千山暮雪原创
2021年04月02日 16:02:58404浏览

1. 数组,对象,传参的解构

解构赋值语法是一种 Javascript 表达式。通过解构赋值, 可以将属性/值从对象/数组中取出,赋值给其他变量。

  • 数组的解构
  1. // 完全解构
  2. let [a,b,c] = [1,2,3];
  3. console.log('a:%d,b:%d,c:%d',a,b,c);
  4. // 部分解构
  5. let [d,e] = [4,5,6];
  6. console.log('d:%d,e:%d',d,e);
  7. // 支持默认值与归并
  8. let [f,g,h=10] = [7,8]
  9. console.log('f:%d,g:%d,h:%d',f,g,h);
  10. let[i,j,...k] = [1,2,3,4,5,6,7,8,9]
  11. console.log('i:%d,j:%d,k:%o',i,j,k);
  • 对象的解构
    1. let obj = {
    2. name:'张三',
    3. gender:'男',
    4. email:'tp@php.cn'
    5. }
    6. let {name,gender,email}= obj;
    7. console.log('name:%s,gender:%s,email:%s',name,gender,email);
    8. // 如果对象没有声明,需要使用()转为表达式
    9. ({name2,gender2,email2} = {name2:'李四',gender2:'女',email2:'admin@qq.com'});
    10. console.log('name2:%s,gender2:%s,email2:%s',name2,gender2,email2);

    变量名要与对象属性名相同
    属性名与变量名不相同时无法获得赋值

    1. ({name2,gender2,email2} = {name:'李四',gender:'女',email:'admin@qq.com'});
    2. console.log('name2:%s,gender2:%s,email2:%s',name2,gender2,email2);

    一个属性从一个对象解构,并分配给一个不同名称的变量

    1. ({name:name2,gender:gender2,email:email2} = {name:'李四',gender:'女',email:'admin@qq.com'});
    2. console.log('name2:%s,gender2:%s,email2:%s',name2,gender2,email2);
  • 传参的解构
  1. function User({name,email}) {
  2. console.log('name:%s,email:%s', name,email);
  3. }
  4. User({name:'王五',email:'admin@php.cn'});

2. 访问器属性的get,set操作

通过set,get修饰,把访问器的方法变成属性调用
访问器

  1. let user = {
  2. data:{name},
  3. set name(v) {
  4. this.data.name = v;
  5. },
  6. get name() {
  7. return this.data.name;
  8. }
  9. }
  10. console.log(user.name);
  11. user.name = '张三';
  12. console.log(user.name);
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议