既然有时间在最后壮烈牺牲,不如完美地活到最后一刻——坂田银时/银魂

前两天有朋友问我,这个写法看不懂,让我给他讲讲

image-20210503102909388

它这里用到了一个ES6的新特性:解构赋值

这里简单复现一下

1
2
3
4
5
6
7
8
9
var param = {
columns: {
property: "我是property"
},
data: ["我是", "data", "数组"]
}
var {columns,data} = param
console.log(columns)
console.log(data)

输出结果

image-20210503103425445

可以看到我们这里使用

1
var {columns,data} = param

去拿到了param里的变量columnsdata

这里注意一点,如果我们使用的名字不同的话,是无法取得里面的属性的

例如

1
2
3
4
5
6
7
8
9
var param = {
columns: {
property: "我是property"
},
data: ["我是", "data", "数组"]
}
var {col,data} = param
console.log(col)
console.log(data)

可以看到输出undefined

image-20210503103716726

那如果我们这个变量在上面有同名的怎么办呢,我们可以使用冒号取个别名

1
2
3
4
5
6
7
8
9
10
11
var columns = "我被定义了"
var param = {
columns: {
property: "我是property"
},
data: ["我是", "data", "数组"]
}
var {columns:col, data} = param
console.log(columns)
console.log(col)
console.log(data)

输出结果

image-20210503103923451