【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

相关推荐
520拼好饭被践踏20 小时前
JAVA+Agent学习day22
java·开发语言·后端·学习
先吃饱再说20 小时前
React 组件通信:从 Props 单向传递到自定义事件
前端·react.js·前端框架
笨蛋不要掉眼泪20 小时前
Java虚拟机:堆的参数配置
java·开发语言·jvm
swipe20 小时前
05|(前端转后全栈)不手写一堆 SQL,后端怎么操作数据库?MyBatis-Plus 入门
前端·后端·全栈
Allshadow20 小时前
Nest.js - 连接数据库
javascript·nestjs
霸道流氓气质20 小时前
SpringBoot中使用JasperReports 报表引擎 — 介绍、原理与使用实践
java·spring boot·后端
冰暮流星20 小时前
javascript之date对象
开发语言·javascript·ecmascript
swipe20 小时前
04|(前端转后全栈)前端状态为什么不够用?从页面数据到 MySQL 持久化
前端·后端·全栈
橘子星20 小时前
别光看教程!手把手拆解 React Todo 项目,一文吃透 5 个核心概念
前端·javascript
花生了什么事o20 小时前
DDD 分层架构:六层分层架构
java·架构·ddd