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,已经初始化过了。
以上这些只是为了学习做的总结,有部分摘自大牛原话,本人只是为了学习方便做的笔记,如有侵权,联系必删,致敬大牛!