var arr=Array.apply(null,{length:3})
相当于
var arr=Array.apply(window,{length:3})
又相当于:
var arr=Array.apply(window,[undefined,undefined,undefined])
window.Array(undefined,undefined,undefined)
Array(undefined,undefined,undefined)
还可以写成:
Array.apply(window,new Array(3))
因为:非严格模式下,指定为 null 或 undefined 时会自动指向全局对象(浏览器中就是window对象),同时值为原始值(数字,字符串,布尔值)的 this 会指向该原始值的自动包装对象。 因为:从 ECMAScript 第5版开始,可以使用任何种类的类数组对象,就是说只要有一个 length 属性和[0...length] 范围的整数属性。例如现在可以使用 NodeList 或一个自己定义的类似 {'length': 2, '0': 'eat', '1': 'bananas'} 形式的对象。
Array.apply(window,{'length':2,'0':'bana','1':'apple'}) //["bana", "apple"]
Array.apply(window,{'length':3,'0':'bana','1':'apple'}) ["bana", "apple", undefined]
可以使用数组字面量(array literal),如 fun.apply(this, ['eat', 'bananas']),或数组对象, 如 fun.apply(this, new Array('eat', 'bananas'))。也可以使用 arguments 对象作为 argsArray 参数。
如对本文有疑问, 点击进行留言回复!!
CSS 容器背景 10 种颜色渐变Demo(linear-gradient())
详解CSS文件中的4种引入方式:行内,内联式,外部式,导入式
网友评论