当前位置:  开发笔记 > 编程语言 > 正文

Array.of(n),Array(n)和array = [n]之间的区别是什么?

如何解决《Array.of(n),Array(n)和array=[n]之间的区别是什么?》经验,为你挑选了1个好方法。

作为标题,我想知道这三种初始化数组方法之间的区别是什么.

我实际上对ES6提供的新Array.of()方法更感兴趣,为什么他们觉得实现的需求呢?



1> Pointy..:

可以通过两种方式调用Array构造函数:要用作数组元素值的值列表,或者使用给出初始长度的单个数值:

var myArray = new Array("hello", "world"); // 2 elements
var otherArray = new Array(100); // 100 elements, all empty

因为只传递一个数字时存在歧义,所以旧的API被认为设计得很糟糕.因此,Array.of()这与Array构造函数的第一个选项相同:

var otherArray = Array.of(100); // 1 element

制作数组的第三种方法是使用数组初始化表达式:

var otherArray = [100]; // 1 element

由上述每个创建的数组实例在功能上是等效的并且是完全可互换的.

还有一件事:为什么Array.of()必须存在,因为我们可以使用数组初始化表达式?嗯,Array.of()是一个函数,因此它可以用作函数式编程中应用的值.你可以(作为一个稍微愚蠢的例子)复制一个数组:

var copy = Array.of.apply(Array, original);

愚蠢的一个原因是(在ES2015中)Array.from()也有同样的事情:

var copy = Array.from(original);

这适用于任何类型的可迭代原型,因此它是将argumentsNodeList转换为数组的好方法.

该MDN网站对文档Array.of().构造函数和数组初始化器形式一直存在,所以任何JavaScript引用都将涵盖那些(尽管可能没有引用Array.of()).

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有