Array.apply(null,{length:3})写法实例
程序员文章站
2022-07-01 22:57:39
Array.apply(null,{length:3})写法实例
var arr=Array.apply(null,{length:3})
相当于
var arr=A...
Array.apply(null,{length:3})写法实例
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 参数。