谁能告诉我方法调用之前的方括号是什么意思?我从未见过...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/