gpt4 book ai didi

javascript - 为什么函数的参数对象不是 Javascript 中的数组?

转载 作者:IT王子 更新时间:2023-10-29 03:01:50 24 4
gpt4 key购买 nike

因为人们做的第一件事似乎是将 arguments 转换成一个真正的数组,我很想知道为什么 Javascript 语言的作者和实现者决定并继续思考 arguments 不应该是一个真正的 Array。我并不是说这是诱饵,我真诚地对它背后的想法很感兴趣。因为当你在函数体内时,函数自然会被调用,我不认为这是因为 arguments 引用的对象可以改变,就像一些 DOM 结果......

最佳答案

我的猜想:

arguments 对象的概念从一开始就存在于语言中,甚至在 ECMAScript First Edition Standard 中都有描述。 <子>(PDF)

在那个版本的 ECMAScript 中,Array.prototype 非常基础,数组对象包含只有 4 个方法!:toString加入反转排序

我认为这是他们让 arguments 继承 Object.prototype 的主要原因之一,当时那些 Array 方法看起来不太好 有用

但是Array.prototype对象在下一版本的标准中得到了扩展,现在在ES5上,Array对象有mapreduce<等方法everysome 等,非常强大

去年,在标准的草案阶段,ES5 提出了让 arguments 继承自 Array.prototype 的提议,但后来被取消了.

在那些草案中,arguments 继承自 Array.prototype,但为了向后兼容 ES3,arguments 对象定义了两个自己的属性, toStringtoLocaleString, 都指向Object.prototype 上相同的方法,但最终,委员会决定继续继承自对象.原型(prototype).

关于javascript - 为什么函数的参数对象不是 Javascript 中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3242485/

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