Array.apply(null, {length: 20}) 和 Array(20) 的区别

在阅读 vue 教程时,发现一段代码:

render: function (createElement) {
  return createElement('div',
    Array.apply(null, { length: 20 }).map(function () {
      return createElement('p', 'hi')
    })
  )
}

好奇其中的 Array.apply(null, {length: 20}) 是什么意思

经查证得知,Array.apply(null, {length: 20}) 会创建一个每个值都初始化为 undefined ,长度为20的数组;而 Array(20) 只会创建一个长度为20的空数组。

此处用 Array.apply(null, args) 是因为 map 不会遍历数组中没有被初始化或者被 delete 的元素,(forEach reduce 同样适用)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容