欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Array.apply(null,{length:3})

程序员文章站 2022-05-31 22:11:23
...
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 参数。

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/apply
https://www.cnblogs.com/afeihome/p/6750539.html
https://segmentfault.com/a/1190000011435501

相关标签: apply