arguments对象的理解;
来源:互联网 发布:网站seo推广工具 编辑:程序博客网 时间:2024/05/18 04:54
转载至:http://www.cnblogs.com/yy95/p/5762606.html;
ECMAScript中函数没有标签名的特性,所以ECMAScript函数中没有重载。
Javascript中arguments的存在可以弥补javascript中函数没有重载的不足。
Javascript中函数中的参数是以数组的形式保存的,所以在JavaScript中调用函数给函数传递的参数时,不会受到我们定义函数时设置的参数个数的限制。也就是说如果我们给一个函数定义了2个参数,我们传递的时候可以不传,可以传一个,也可以传两个,传三个...都可以,不会受函数参数个数的影响。arguments类似一个数组(但是不是真正的Array对象),同样可以像数组一样用方括号来访问它的每一个值,并用arguments.length来判断参数的个数。
应该说我们可以向ECMAScript(javascript是对ECMAScript标准的实现)函数任意的传递参数,并可以通过arguments对象来访问这些参数。
案例:
function foo(){if(arguments.length==1){var num = arguments[0]return function(){console.log(arguments[0]+num);}}else{console.log(arguments[0]+arguments[1]);}} 先判断函数参数的个数通过arguments.length; foo(2)(5);//7foo(2,5);//结果7
命名参数可以和arguments一起使用
和其他oo语言不一样,在ECMAScript中,所有参数传递的都是值,不可能通过引用传递参数(毕竟arguments中保存的都是参数的值)。
arguments对象中还定义了callee属性,用来引用当前正在执行的函数,例如在递归中使用:
而callee属性就是该函数本身,故可以使用递归;看代码:function foo(num) {num = num || 0;if(num <= 1) {return 1;} else {return num * arguments.callee(num - 1);}}console.log(foo(3));
需要注意的是如果一个函数的参数有3个,传递的实参只有2个,那么arguments[2]和第三个参数是不共享的.
阅读全文
0 0
- arguments对象的理解;
- js arguments对象的简单理解
- 对javascript中arguments对象的理解
- 第四天:理解arguments对象
- Javascript 的 arguments对象
- JS的arguments对象
- js 的 arguments 对象
- JavaScript的arguments对象
- js的arguments对象
- arguments对象的使用
- JavaScript的arguments对象
- 函数的arguments对象
- 理解javascript arguments的例子
- javascript 的隐藏对象 Arguments
- arguments 对象的 callee 属性
- js arguments对象的用法
- javascript---arguments对象的使用
- 简述 arguments 对象的作用
- 如何仅用递归函数和栈操作逆序一个栈
- 图像翻转代码实现
- 软件工程导论第三章作业3.3
- 操作符实例讲解
- hive组件和执行过程
- arguments对象的理解;
- 小米官网仿写
- 实验二 线性表 综合实验(c++)
- pip pygame pygal在linux安装
- thinkphp数据库增删查改总结(一)
- 虚拟机VMware上安装Fedora
- CVPR2017 最佳论文——Densely Connected Convolutional Networks
- 10.08周日
- Activity release 资源的正确姿势