const {attr} = obj 等同于 const attr = obj.attr,是ES6用法。
/* * 第一,能少写一次 attr。 * 使得代码量更少,更优雅。 */ /* * 第二,减少Cannot read property xxx of undefined 类型的错误 * 万一你的obj是undefined,如果这样写const attr = obj.attr 就炸了。 */ const {attr} = obj //等同于 const {attr} = obj || {} /* * 第三,可以同时定义多个变量 */ const {attr1, attr2, attr3} = obj //等同于 const attr1 = obj.attr1 const attr2 = obj.attr2 const attr3 = obj.attr3 /* * 第四,可以默认结构值,解构出的undefined值可以被默认值覆盖 */ const {attr1 = '', attr2 = 1, attr3 = true} = obj