javascript兼容性:展开运算符 ... 的降级

展开运算符 ... 是一个很好用的ES6新特性,用的好的话,可以节约很多代码。

但是作为ES6特性,它有兼容性问题,而且Babal(在线转码网页)并不会转换展开运算符。

展开运算符大体分为两种用法:展开对象和展开数组。

现在我就来讲讲展开运算符的降级写法。

展开对象:

var a = {
  // 此处省略500字
}
var b = {
  ...a
}

Object.assign 可解。

var a = {
  // 此处省略500字
}
var b0 = {
  // 此处省略500字
}
var b = Object.assign(b0, a)

展开数组:

var arrayA = [/* 很多东西 */]
var arrayB = [/* 很多东西 */]
var last_array = [...arrayA, ...arrayB]

[].concat() 可解。

var arrayA = [/* 很多东西 */]
var arrayB = [/* 很多东西 */]
var last_array = [].concat(arrayA, arrayB)

以上。