javascript - Array.prototype.slice.call(arguments) 与 [...args] 有什么区别?
问题描述
我知道它Array.prototype.slice.call(arguments)
用于将参数创建到一个真实的数组中,如下所示:
function foo() {
// convert arguments to an array:
var argsArray = Array.prototype.slice.call(arguments);
// . . . foo's logic . . .
}
我也可以使用spread operator
来实现与以下相同的功能
function foo(...argsArray) {
// . . . foo's logic . . .
}
除了在使用方面不那么冗长之外spread operator
,这两种方法之间有什么区别?
解决方案
在您的示例中,两种变体应该相同。
arguments 对象主要用在 rest 参数之前,而扩展运算符是一个东西。根据 MDN,它不应再用于现代 JavaScript:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments
推荐阅读
- postgresql - get calculation value from previous row on postgresql
- javascript - Antd 表 - 按 dataIndex 以外的值排序
- database-design - 如何将关系存储到表中(ER图)
- powerquery - PowerBI 或 Excel:根据列中的唯一值创建列
- android - 在颤振中存储来自表单的信息
- python-3.x - 用相对于行排名的列名替换数据框中的空值
- java - onactivityresult() 在 android 片段中已弃用
- c# - C#“根据验证程序,远程证书无效:RemoteCertificateNameMismatch, RemoteCertificateChainErrors”
- avr - 关于 UART RXCn 标志 (AVR) 的基本问题
- angular - 角度缩短数