• 对象的解构赋值(基本用法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。

  • 相关阅读:
    MySQL MVCC详细介绍
    《Go Web 编程》之第9章 发挥Go的并发优势
    【云原生之Docker实战】使用Docker部署Lychee照片管理平台
    React源码解读之React Fiber
    lmbench----lmbench性能测试工具迁移至openEuler操作系统实践
    IDEA 整合 Tomcat 开发 Javaweb 工程 2022-7-28
    python字符与字典、列表相互转换
    ssm文达学院学生社团招募系统的设计与实现毕业设计源码211633
    【Linux】线程(二:线程控制)
    Mysql JDBC 编程
  • 原文地址:https://blog.csdn.net/m0_71814235/article/details/126229838