【es6】对象解构赋值

es6中对象解构赋值:

代码

javascript 复制代码
let { foo: baz } = { foo: 'rose', bar: 'jeck' };
baz // "rose"

let obj = { first: 'tom', last: 'rose' };
let { first: f, last: l } = obj;
f // 'tom'
l // 'rose'

let { foo: baz } = { foo: 'rose', bar: 'jeck' }中的foo:baz部分,foo是匹配对象中属性名称foo,baz则是需要被赋值的变量。

对象赋值还可以用于嵌套的对象赋值:

代码:

javascript 复制代码
let obj = {
  p: [
    'rose',
    { y: 'jeck' }
  ]
};

let { p: [x, { y }] } = obj;
x // "rose"
y // "jeck"

let { p: [x, { y }] }中的p属于匹配对象中p属性,需要被赋值的变量为x、y。

下面给出另外一个模式匹配赋值,嵌套类型的。

javascript 复制代码
let obj = {
  p: [
    'rose',
    { y: 'jeck' }
  ]
};

let { p, p: [x, { y }] } = obj;
x // "roes"
y // "jeck"
p // ["rose", {y: "jeck"}]

let { p, p: [x, { y }] } = obj中的第一个p其实是p:p的简写,p: [x, { y }] 中的p是模式,匹配对象中属性p,然后将数组内的第一个值赋值给x,第二个值的y属性赋值给y,y也是y:y的简写。详细写法是:let { p:p, p: [x, { y:y }] } = obj。

相关推荐
随风一样自由17 小时前
【React+TS71007】Next.js “use client” 误用导致 TS71007:客户端/服务端引入问题的完整排查与修复
前端·javascript·react.js
金銀銅鐵17 小时前
[Java] 用 CLI 展示 EnumSet 增减元素时的内部变化(上)
java·后端·ai编程
qq_4369621817 小时前
金蝶云星空数据分析怎么做?
java·数据库·数据分析
代码山河17 小时前
键盘输入与输出:Scanner与System.out详解
java·学习·架构·教程·面向对象·项目
计算机魔术师17 小时前
1.4万亿没人接,OpenAI自己把价砍了1500亿
前端
非凡ghost17 小时前
Photo Supreme:专业高效的照片收藏管理专家
服务器·前端·人工智能·电脑·软件需求
碧海银沙音频科技研究院17 小时前
基于炬芯ATS308X的BLE 无线方式离线日志传输导出功能实现
java·linux·服务器
zhangminghuan17 小时前
前端动态路由实现方案(Vue3 + VueRouter4)|后台权限路由实战
前端
一切皆是因缘际会17 小时前
大模型应用
前端·人工智能
SCandL15218 小时前
【无标题】
前端