方法前的方括号
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);
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 方法前的方括号
- 将复选框数组传递到 $_GET 的另一种方法 - 除了方括号
- 在jQuery选择器中,这些不同的转义方括号的方法有什么区别
- Regex删除方括号和前面方法名之间的内容
- 使用数组方法时返回方括号的函数