【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

相关推荐
lpd_lt12 小时前
服务端类vue等页面AI测试方向
前端·vue.js·人工智能
AugustRed12 小时前
A2UI 完整学习指南(含 Java 后端 + 前端实战示例)
java·开发语言·前端
王莎莎-MinerU12 小时前
Agent 时代,科学数据 API 需要重新设计
大数据·前端·数据库·人工智能·个人开发
程序猿乐锅12 小时前
【MySQL | 第五篇】 MySQL 性能分析:如何查询慢 SQL
java·sql·mysql
jingling55512 小时前
自建技术博客实战(三):工具专栏——地图定位、声音复刻与 rembg 抠图
android·开发语言·前端·ai·nextjs
lee_curry12 小时前
tomcat+springmvc+spring源码流通过程
java·spring·tomcat·springmvc
w1wi12 小时前
【兼职】边学边练的AI网站
java·人工智能·ai·ai编程·ai写作
basketball61612 小时前
C++进阶:1. 引用折叠规则
java·开发语言·c++
404号扳手12 小时前
Java 进阶知识(七)
java·后端
小小小小宇13 小时前
Chrome 插件在新开页生效
前端