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
推荐阅读
-
Return zero length collections or arrays as opposed to returning null
-
Return zero length collections or arrays as opposed to returning null
-
JavaScript中如何理解如何理解Array.apply(null, {length:5})
-
Array.apply(null,{length:3})写法实例
-
js或jquery报错Cannot read property 'length' of undefined(Cannot read property 'rows' of null)
-
undefined==null引发的两者区别与联系第1/3页_javascript技巧
-
TypeError: Cannot read property ‘length‘ of null
-
CocosCreator场景动态加载预置物体,二次加载场景报错TypeError: Cannot read property 'length' of null
-
Array.apply(null,{length:3})
-
Spring3.x版本+maven多模块读取配置文件properties一直是null的坑