Array.apply(null, { length: 20 })的用法

今天在看vue.js的render函数时,发现了下面代码

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

有两个疑问:1.apply的第二个参数不是必须是数组么?   2.为什么用apply,直接 Array(20) 也能创建一个长度为20的数组啊?

解答1:apply的第二个参数可以穿进去一个带length属性的对象也可以,因为检测的是length属性。

解答2:Array(20)创建出的数组虽然长度是20,但是创建出来的数组都没有初始化,你console看一下。而Array.apply(null,{length:20}) 创建出来的数组不仅长度是20,并且每一项都是undefined,已经初始化过了。

 

posted @ 2020-03-16 16:37  每天都要学进去一些  阅读(523)  评论(0编辑  收藏  举报