为什么写了 baz 之后,打印 foo 报错呢?
我有两个疑问:
1.为什么不写 baz 时,打印 foo 正常,但是写了 baz 之后,打印 foo 报错呢?
2.为什么平时用 { foo } = obj 比较多呢?而不是 { foo : baz } =obj 呢?
25
收起
正在回答
2回答
同学你好,通俗的理解就相当于一个中介,通过它找到同名属性,再把属性值赋值给后面的变量。
祝学习愉快 ~
好帮手慕夭夭
2020-04-14 11:38:06
同学你好,问题解答如下:
1.因为只写foo的时候,foo就是变量。解构赋值时,找到对象同名的属性并把值赋值给变量foo,所以可以打印。
使用如下语法时,foo为模式,baz为变量。对象解构赋值的内部机制,是通过模式foo找到同名属性,然后再赋给对应的变量baz,真正被赋值的是变量baz,而不是模式foo。通俗的说,此时foo就是一个中介,它不是变量,所以输出会报错。
2.要具体情况具体分析,第一种语法是直接变量名和属性名同名。第二种语法是,假如不想要变量名与属性名同名,就另起一个名字。如果没有这种必要,那么使用第一种就行哦。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
4.Vue与React高级框架开发
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星