繁体   English   中英

javascript - 方法之前的方括号

[英]javascript - square bracket before method

谁能告诉我方法调用之前的方括号是什么意思? 我以前从未见过......

return [].concat(privateUserList);

谢谢!

[]是一个空数组。 就像[1,2,3,4]将是一个包含四个元素的数组。

该片段创建一个空数组,然后连接到它privateUserList

[]创建一个空数组。 [].concat是数组上的一个方法,该代码将privateUserList传递给它。 最终结果是一个新数组包含与privateUserList相同的条目(如果它是一个数组)或包含privateUserList本身(如果它不是数组)。

它在理论上是低效的,因为它创建并抛弃一个数组(因为concat创建一个数组,由[]创建的数组被抛弃)。 但是这个创建和丢弃数组的其他常见相关习惯很常见,可能会被优化掉。

如果(再次)我们假设privateUserList是一个数组,那么更直接的方法是:

return privateUserList.slice();

如果我们想支持任何类似数组concat没有),我们将使用:

return Array.prototype.slice.call(privateUserList);

或者在ES2015上(或使用垫片):

return Array.from(privateUserList);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM