码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript arguments 对象

时间:2016-05-03 15:51:38      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

1.arguments当然只在function体内才有意义, arguments.length 返回的是传入function的实参个数。

<script type="text/javascript">
window.onload = function() {
(function(arg1, arg2) {
     alert(arguments.length); //0
    alert(arguments.callee.length);//2 
})();
}
</script> 

 arguments只在function体内才有意义, arguments.length 返回的是传入function的实参个数,比如我这里没有传入什么,而是直接运行了一个匿名函数,那么第一个alert肯定是‘0‘, 再来看arguments.callee返回的是调用的函数本身, 对于匿名函数,则可以通过arguments.callee得到自身的引用,这里arguments.callee.length返回的是function本预期要传入的参数个数,这样的话第二个alert就是‘2‘, 如果这是个有名字的函数比如函数名为mytest,那么就可以直接mytest.length来得到应该传入的参数个数.

2.形参的值跟一一对应的arguments参数数组中的值始终保持同步的。

function doAdd(num1, num2){
num1 = 10;
alert(arguments[0]);
}
doAdd(5, 5); //得到10

相反

function doAdd(num1, num2){
arguments[0] = 10;
alert(num1 + num2);
}
doAdd(5, 5);//得到15

注意:在严格模式下,上面的做法是错误的,不能在函数内部重写arguments的值,会报错。

所有的参数传递都是通过传值,而不是引用。

3.在函数内部可以使用arguments参数数组的形式调用。这就说明命名的参数即形参不是必须的,只是为了提供便利。

function say(){
 alert(arguments[0] + ‘say‘ + arguments[1]);
}
say(‘xiao‘, ‘hello‘);

JavaScript arguments 对象

标签:

原文地址:http://www.cnblogs.com/pty923/p/5455153.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!