大家好,欢迎来到IT知识分享网。
点击上方蓝字关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!
在JS函数体内,存在一个Arguments对象的实例arguments,具体特殊的意义和用法。总的来说,我们需要理解的就以下三点:
一、实现重载
我们都知道,在JavaScript中并没有函数重载的功能,但是Arguments对象能够模拟重载,比如,最简单的一种方式,根据参数的个数进行重载。如下图
如上图代码所示,打印出来的就是2。这样就实现了函数重载。
当然,利用Arguments对象实现函数重载的方式可以有几种,除了根据参数的个数,还可以根据传入参数的类型来执行不同的操作,也可以利用参数中特殊的参数值来进行不同的操作。
二、同数组下标访问实参
JavaScript中每个函数都会有一个Arguments对象的实例arguments,它引用着函数的实参,而且可以用数组下标的方式来引用arguments的元素。如下图
如上图代码所示,arguments.length为函数实参的个数,要注意的是,arguments对象并不是一数组,它也不具有数据的所有方法,但是访问单个参数的方式与访问数组元素的方式相同,如上图代码中argument[0]…。
三、属性callee指向自己
对象都是有自己的属性和方法的,Arguments对象也是一样,callee就是它的方法,这个方法用的不多,很容易被我们忽略,它指向的是正在被执行的Function对象,最常用的例子就是用来做递归了。如下图
如上图代码所示,实现了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