【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

相关推荐
电商API_180079052474 分钟前
淘宝商品详情数据获取全方案分享
开发语言·前端·javascript
IT19954 分钟前
Java文档阅读笔记-AI LangChain4j - Agent Multiple Tools Calling Example
java·笔记·文档阅读
rlpp10 分钟前
spring.profiles.active和spring.profiles.include的使用及区别说明
java·后端·spring
Pluchon11 分钟前
硅基计划4.0 算法 简单实现B树
java·数据结构·b树·算法·链表
Amumu1213828 分钟前
CSS简介
前端·css
Yzw42 分钟前
当vue.diff遇上了扩展运算符(...)
前端
前端不开发42 分钟前
在任意网页里“召唤”一个火柴人:一次有趣的 JavaScript Hack
前端·javascript
whatever who cares1 小时前
Java Web 架构全组件详解
java·前端·架构
好家伙VCC1 小时前
**标题:发散创新|用Python构建GAN图像生成器:从理论到实战全流程解析**---在深度学习飞速发展的今天,**生成对抗
java·python·深度学习·生成对抗网络
我命由我123451 小时前
Android Studio - 在 Android Studio 中直观查看 Git 代码的更改
android·java·开发语言·git·java-ee·android studio·android jetpack