对象解构赋值问题

对象解构赋值问题

var {foo: baz} = {foo: 'aaa', bar: 'bbb'};

这个baz为什么是aaa;

然后foo为什么是foo is not defined;

从结构来看,foo是被baz赋值,但是baz没有值,结果baz变成foo的值了

下载视频          

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕久久 2023-07-19 17:34:48

同学你好,理解的不对。具体如下:

1、foo不是被baz赋值,赋值是等号=,这里冒号:

2、var { foo: baz } = { foo: 'aaa', bar: 'bbb' }这个写法,叫做解构赋值。等号右侧是被解析的数据,等号左侧是解构数据的哪个部分(可以简单理解成:拿到数据的哪个属性)。比如:

https://img1.sycdn.imooc.com//climg/64b7acd209853d6506940100.jpg

https://img1.sycdn.imooc.com//climg/64b7ad0909409b2908790118.jpg

3、解构的时候,还可以给左侧变量起别名,比如:var { foo: baz } = { foo: 'aaa', bar: 'bbb' },就是把左侧的foo变量删掉,换成名字是baz的变量:

https://img1.sycdn.imooc.com//climg/64b7ad6d09383e7a07660125.jpg

https://img1.sycdn.imooc.com//climg/64b7ad7c091b41e207760138.jpg

所以baz有值,是aaa,而foo不存在。

该部分内容,课程中都有详细讲解,建议跟着视频一步步来,不要着急、更不要跳课(得不偿失)。

祝学习愉快!

  • 提问者 吉米崔 #1

    明白了,我把别名的位置理解反过来

    理解成这样子了:var {'baz': foo} = {foo: 'aaa', bar: 'bbb'}

    现在明白了 感谢老师

    下载视频          
    2023-07-19 17:43:23
  • 好帮手慕久久 回复 提问者 吉米崔 #2

    好的,我以为同学看错符号了,理解就好。

    2023-07-19 17:45:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师