关于js中的arguments,只需要搞懂这三点

关于js中的arguments,只需要搞懂这三点在JS函数体内,存在一个Arguments对象的实例arguments,具体特殊的意义和用法。总的来说,我们需要理解的就以下三点:。

大家好,欢迎来到IT知识分享网。

点击上方蓝字关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!

在JS函数体内,存在一个Arguments对象的实例arguments,具体特殊的意义和用法。总的来说,我们需要理解的就以下三点:

关于js中的arguments,只需要搞懂这三点

一、实现重载

我们都知道,在JavaScript中并没有函数重载的功能,但是Arguments对象能够模拟重载,比如,最简单的一种方式,根据参数的个数进行重载。如下图

关于js中的arguments,只需要搞懂这三点

如上图代码所示,打印出来的就是2。这样就实现了函数重载。

当然,利用Arguments对象实现函数重载的方式可以有几种,除了根据参数的个数,还可以根据传入参数的类型来执行不同的操作,也可以利用参数中特殊的参数值来进行不同的操作。

二、同数组下标访问实参

JavaScript中每个函数都会有一个Arguments对象的实例arguments,它引用着函数的实参,而且可以用数组下标的方式来引用arguments的元素。如下图

关于js中的arguments,只需要搞懂这三点

如上图代码所示,arguments.length为函数实参的个数,要注意的是,arguments对象并不是一数组,它也不具有数据的所有方法,但是访问单个参数的方式与访问数组元素的方式相同,如上图代码中argument[0]…。

三、属性callee指向自己

对象都是有自己的属性和方法的,Arguments对象也是一样,callee就是它的方法,这个方法用的不多,很容易被我们忽略,它指向的是正在被执行的Function对象,最常用的例子就是用来做递归了。如下图

关于js中的arguments,只需要搞懂这三点

如上图代码所示,实现了6+5+4+3+2+1的操作。

最后总结:

在平时的封装和使用JS过程中,callee方法用的比较少,其它一般都会用到,现在,我在用几句话在来总结一下对arguments的理解:

1、arguments像数组,是一个Arguments对象实例。

2、arguments有length属性,代表传给函数的参数个数。

3、可以数组下标访问参数,如arguments[0],无数组其它方法。

4、存储的是实参不是行参。

5、可以使用callee属性调用自身。

以上都是小郑子个人理解,如有不对,欢迎留言交流,谢谢!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/46337.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信