JavaScript中的arguments对象是什么?
JavaScript的函数参数是什么?和arguments有什么联系?
JavaScrip的函数参数称为形参,实参是调用函数的时候传递的实际参数值,依次从做到右匹配函数的参数,JavaScrip的函数是Function类型,可以通过调用它的length属性获取函数的形参个数,例如函数fn.length。
当调用函数的时候,穿给函数的叫做实参,函数内部有一个arguments对象,用于保存函数的实参的相关信息,注意arguments对象不是数组,但是可以当数组使用。当调用函数传实参少于形参的时候,后面的形参变为undefined,当传实参多余形参的时候,多出的实参会保存在arguments对象中,实参在arguments对象中的所以从0开始递增,arguments.length表示实参的个数,注意,每个函数都有自己的arguments对象,不能在函数外部调用arguments对象。
下面是JavaScript使用arguments对象的实例:
var fn = function(id, name){
console.log(new Date().toLocaleString() + " " + id + ": " + name);
var length = arguments.length; // 获取函数实参的个数
console.log(length);
// 遍历arguments中的所有实参内容
for(var i = 0;i < length;i++){
console.log(arguments[i]);
}
}
fn(12, "Fucntion");
console.log(fn.length); // 获取fn函数的参数个数
console.log(fn.name); // fn.name获取函数的名称
另外,可以使用JavaScript的arguments对象实现可变长参数的函数,可变长参数使用arguments访问所有实参进行使用,下面是一个计算任意个数值的最大值的函数:
// 可变长参数的函数
var max = function(){
if(arguments.length == 0)
return;
var maxValue = arguments[0]; // 取arguments的第一个元素初始化为最大值
for(var i = 1;i < arguments.length;i++){
if(maxValue < arguments[i])
maxValue = arguments[i];
}
return maxValue;
}
var maxValue = max(12, 78, 1, 6, 75, 26);
console.log(maxValue); // => 78
评论前必须登录!
注册