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

return [].concat(privateUserList);

谢谢!

最佳答案

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

从理论上讲它是无效的,因为它会创建并丢弃一个数组(由于concat创建了一个新数组,所以由[]创建的数组也被丢弃了)。但这是创建和丢弃数组的另一种常见的相关习语,很常见,并且可能已经过优化。

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

return privateUserList.slice();


如果我们想支持类似数组的任何内容(concat不支持),则可以使用:

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


或在ES2015上(或带有垫片):

return Array.from(privateUserList);

关于javascript - javascript-方法前的方括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35922519/

10-11 20:06