js理解参数-arguments对象
js理解参数-arguments对象:
1. ECMAScript函数的参数:
ECMAScript函数的参数在内部是用一个数组来表示的,函数接收到的始终是这个数组,而不关心数组中包含多少个参数,也不在乎传进来的参数是什么数据类型。
在函数体内可以通过arguments对象来访问这个参数数组。
2. 关于命名参数的问题:
ECMAScript函数中命名的参数只提供便利,但不是必需的。在ECMAScript中,解析器不会验证命名参数,而是通过访问arguments对象的length属性获得参数的个数,且arguments对象的长度是由传入的参数的个数决定的,不是由定义函数时命名参数的个数决定的。
3. 值同步:
arguments的值永远与对应命名参数的值同步,但它们的内存空间是独立的。没有传递值的命名参数将自动被赋予undefined值。
Ps:<1>如果只传入了一个参数,则arguments[1]的值不会反映到命名参数中。
<2>ECMAScript中所有参数传递的都是值,不可能通过引用传递参数。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。