javascript - Javascript (ES6) Array.of() 的用例是什么?

标签 javascript arrays ecmascript-6

我遇到了新的 Array.of()已经在 ES6 中完成的方法,我想知道什么时候可以使用:

var a = Array.of('foo', 'bar');

结束:

var b = ['foo', 'bar'],
    c = new Array('foo', 'bar');

最佳答案

用一个数字实例化一个数组会创建一个有那么多槽的数组。

new Array(2);
> [undefined x 2]

使用 Array.of 实例化创建一个包含这些元素的数组。

Array.of(2)
> [2]

Array.of 的要点是解决您想要传递稍后构造的类型的问题,在数组的特殊情况下,当它接收单个参数时会出现问题。例如:

function build(myItem, arg){
  return new myItem(arg);
}

这会给出:

console.log(build(Array, 2));
> [undefined x 2]
// ??? Can't pass the literal definition:
//console.log(build([, 1))
console.log(build(Array.of, 2));
> [2]

或者使用更多的 ES6 作为例子:

var params = [2,3];
console.log(new Array(...params));
// [2,3]
console.log(new Array.of(...params));
// [2,3]
params = [2];
console.log(new Array(...params));
// [undefined x2]
console.log(new Array.of(...params));
// [2]

Array.of 始终如您所愿。

关于javascript - Javascript (ES6) Array.of() 的用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31686360/

相关文章:

arrays - 在 bash 中解析数组时出现奇怪的结果

javascript - 使用 while 循环用数组动态包装索引

javascript - 为副作用而导入的 ES6 模块的公认做法?

从 ES5 与 ES6 编写的库中导入 TypeScript

Javascript div onhover 增量计数

javascript - 如何对数字的javascript数组进行排序

javascript - 下载使用 jquery 的 .innerhtml 制作的文件在第一个 "#"处中断

arrays - 使用插入更新 mongodb 中的数组值

javascript - 如何将 Latex 转换为 mathml

javascript - 在 jQuery 中没有真正的工具提示框