今天在学习vue.js的render
时,遇到需要重复构造多个同类型对象的问题,在这里发现原生JS中apply()方法的一个特殊的用法:
var ary = Array.apply(null, {
"length": 5,
"0": 'eat',
"1": 'play'
});//得到ary = ['eat', 'play', undefined*3]
在这个用法中,apply的第一个参数为null
,第二个参数是一个包含length
字段的对象,查了MDN中apply的用法后发现,当apply的第一个参数为null
或者undefined
时,指向的为window
或者global
这个全局对象,第二个参数为一个包含length
的对象时,得到一个指定长度的数组(因为调用的是Array
),并且可以给里面赋上初值。
在这种调用方法中,第一个参数和第二个参数都是没见过的传递形式,值得记录下来,以后见到就不会诧异。
关于这种调用方式的第二个参数,还需要测量更多的用法,不止是调用Array
,以后需要做更多尝试,现在先完成手头学习vue的任务去了。。