• 对象的解构赋值(基本用法2)


    对象的解构赋值,可以很方便地将现有对象的方法,赋值到某个变量。

    例一:

      对象的解构赋值,可以很方便地将现有对象的方法,赋值到某个变量。
        注意:对 所有的对象 进行解构赋值的时候,你如果要将对象中的某个方法 进行解构,你解构的时候,起的变量名,必须和对象里的方法名一一对应上。
        
     对象: 属性 + 方法
           对象的解构赋值 ,要么解构对象里的属性,要么解构对象里的方法
           round()  --- 解构对象中的方法,也就是 把这个方法 拿出来,我要用
          PI        --- 解构对象中的属性,也就是 把这个属性 拿出来,我要用

    1. {
    2. console.dir(Math)
    3. // 对象的解构赋值
    4. const {PI} = Math;
    5. // 将Math对象的对数、正弦、余弦、四舍五入 四个方法,赋值到对应的变量上,使用起来就会方便很多
    6. let {log, sin, cos,round} = Math;
    7. console.log(PI);
    8. console.log(sin(30));
    9. console.log(round(9.6));
    10. }

    console输出效果

     例二:

    1. {
    2. // 对象的解构赋值
    3. console.dir(console);
    4. let {log, info, table} = console;
    5. // 使用起来就会方便很多
    6. log('你好,小张')
    7. info('小史你好')
    8. table([[100,200],[300,400]])
    9. table(
    10. [
    11. {id:1,name:'小卢',sex:'男'},
    12. {id:2,name:'小王',sex:'男'},
    13. {id:2,name:'小商',sex:'男'}
    14. ]
    15. )
    16. }

     console输出效果

    上面代码的例一将Math对象的对数、正弦、余弦三个方法,赋值到对应的变量上,使用起来就会方便很多。例二将console.log赋值到log变量。

    如果变量名与属性名不一致,必须写成下面这样。

    1. let { foo: baz } = { foo: 'aaa', bar: 'bbb' };
    2. baz // "aaa"
    3. let obj = { first: 'hello', last: 'world' };
    4. let { first: f, last: l } = obj;
    5. f // 'hello'
    6. l // 'world'

      这实际上说明,对象的解构赋值是下面形式的简写。

    let { foo: foo, bar: bar } = { foo: 'aaa', bar: 'bbb' };

    也就是说,对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者。

    1. let { foo: baz } = { foo: 'aaa', bar: 'bbb' };
    2. baz // "aaa"
    3. foo // error: foo is not defined

    上面代码中,foo是匹配的模式,baz才是变量。真正被赋值的是变量baz,而不是模式foo。

  • 相关阅读:
    详解supervisor配置与案例
    Mysql-复合查询
    三分钟实战手写Spring Boot Starter
    MEMS传感器的原理与构造——单片式硅陀螺仪
    接口测试流程
    自己动手写编译器:创建由 C 语言编译而成的语法解析器
    Python进程池Pool详解
    Jrebel使用,解决可能出现的JRebel-JVMTI [FATAL] Couldn‘t write to C:\Users\异常
    外包干了3个多月,技术退步明显。。。。
    你好,以太坊社区,你准备好参加 ETH India 2022 黑客马拉松活动了吗
  • 原文地址:https://blog.csdn.net/m0_71814235/article/details/126229838