gpt4 book ai didi

javascript - JS 'arguments' 对象如何转换为数组

转载 作者:行者123 更新时间:2023-11-27 23:44:16 25 4
gpt4 key购买 nike

查找有关执行以下操作时到底发生了什么的更多详细信息:

    function useArray(){
var args = [].slice.call(arguments)
console.log(args)
}

为什么slice是一个具有3个参数(源数组、复制的起始和结束位置)的函数,能够正确地威胁参数?方法call需要第一个参数的正确值作为this,但似乎arguments变成了Array对象?

为什么这不起作用:

var args = [].slice(arguments)

最佳答案

我们使用[].slice来获取Array::slice方法。 arguments 没有自己的 slice(),但它类似于数组。

虽然它是 Array 的成员,但 slice() 在类似数组的对象上也能很好地工作——具有 .length 的东西并可以使用 [0..n] 进行索引。

不带参数的

slice() 返回整个数组的副本。它的参数都是可选的。

因此,就好像 arguments 一个 slice() 方法,我们调用 arguments.slice() 获取它的副本(作为数组)。

[].slice(arguments) 只是在一个空数组上调用 Array::slice(),以 arguments 作为 begin 参数,这没有任何意义,因为 begin (如果存在)应该是一个数字。

关于javascript - JS 'arguments' 对象如何转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33382029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com