我对JS很陌生,我试着理解我在几个地方读到的东西:
在尝试获取函数收到的参数数时,使用了Object.keys(arguments).length。然而,据我所知,这没有任何好处,更短的方法是只使用arguments.length
这是因为arguments拥有.length属性。(MDN参数对象)
有什么东西我遗漏了吗?在某些情况下,在性能或安全性方面首选使用object.keys()吗?
谢谢。
发布于 2021-07-07 10:27:54
arguments是一个“异域对象”,它是“类似数组的”--它具有数值属性和.length。与Object.keys一起使用它与Object.keys(someArray)一样有意义,也就是说,没有。
在新代码中,最好完全避免使用arguments,因为它具有一些不透明的特性,比如参数变量的不可见突变。示例:
function someFunctionThatMutatesArray(a) {
a[0] = 'hey'
}
function func(xyz) {
someFunctionThatMutatesArray(arguments)
console.log(xyz) // surprise
}
func(100)
https://stackoverflow.com/questions/68283649
复制相似问题