vue 的官方文档
其中Array.apply(null,{length:3}) 和 new Array(3) 有区别吗?
首先,Array.apply(null,{length:3}) 和 new Array(3) 都是创建了一个长度为20的数组,区别是:
- Array.apply(null,{length:3}) 和调用 Array({length:3}[0],{length:3}[0],{length:3}[0]) 也就是 Array.apply(undefined,undefined,undefined) 效果一样。生成的数组长这样:[undefined,undefined,undefined]
- 用 new Array(3) 获取的数组,其实是一个只有length,没有元素和索引的空数组,我们一般不会这样创建数组
let a = new Array(10)
console.log(2 in a); // false
再看一下map的使用
综上所述,所以vue源码中的Array.apply(null,{length:3}) 改成 new Array(3) 是不会起作用