【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。

相关推荐
XIAEE1 分钟前
微前端狂想曲:我试图让三个不同门派的前端住进同一栋楼
java·spring
古夕2 分钟前
iframe 授权失败时露出 60000 JSON 的复盘
前端·javascript
XIAEE2 分钟前
Linux 生存指南:从"终端恐惧症"到"命令行老司机"
java·spring
XIAEE2 分钟前
实战教程:手机端死活调不出摄像头?聊聊安全上下文(Secure Context)
java·spring
程序员清风2 分钟前
堆与优先队列:从 Top K 到任务调度
java·数据结构·算法
古夕4 分钟前
地址变了,页面是空的:一次 Vue Router 菜单切换复盘
前端·vue.js
JavaGuide5 分钟前
推荐一个好用 DeepSeek Harness 插件,直接把 Agent 上下文给可视化了!
前端·后端
XIAEE8 分钟前
ES6 与 Node.js 群侠传:那些年我们追过的语法,和那些年把我们追杀的 API
java·spring
XIAEE8 分钟前
WebRTC 探险记:我是如何让两个浏览器"看对眼"的
java·spring
数据掘金12 分钟前
白屏故障定位:从资源请求到路由渲染的排查顺序
前端