/ 前端基础

原生JS中apply()方法的一个值得注意的用法

今天在学习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的任务去了。。