javascript - 请教一下es6的解构赋值
高洛峰
高洛峰 2017-04-11 11:49:14
[JavaScript讨论组]

对象解构赋值

let a, b, c;
let nhm = {a:'ni', b:'hao', c:'ma'};
( {a, b, c} ) = nhm ; // 报错
// 这样就正常运行 ( {a, b, c} = nhm );

请问一下,为什么( {a, b, c} ) = nhm ;会报错呢?
我觉得用括号把{a, b, c}包起来了,应该不会被认为是语句了,不知道为什么还是报错。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
ringa_lee

圆括号问题
按照我对传送门中的内容的理解。
赋值是按照一定的结构模式对应赋值的,=左侧的结构模式和右侧的结构模式。
使用()可以用来区分代码块对象,但是

ES6的规则是,只要有可能导致解构的歧义,就不得使用圆括号。

所以根据上述传送门中的内容,在结构模式的两侧或结构模式中是不允许使用()的。

巴扎黑

我觉得你的问题有一点点钻牛角尖了,()并不算一个语法吧,解构赋值是一个语法,肯定需要按照语法来写啊

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号