您现在的位置:首页 >> 前端 >> 内容

Array.apply(null,{length:3})写法实例

时间:2017/12/28 11:21:23 点击:

  核心提示:Array.apply(null,{length:3})写法实例var arr=Array.apply(null,{length:3})相当于var arr=Array.apply(window,{l...

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 参数。

Tags:AR RR RA AY 
作者:网络 来源:qq_2339234