日期:2014-05-16  浏览次数:20291 次

js arguments的使用
1.在函数代码中,使用特殊对象arguments,开发者无需明确指出参数名,就能访问它们。
1.1方法定义
function testArguments() {
var obj = arguments;
alert(obj[1]);
}
1.2方法调用
testArguments('zhang', 'quan');调用方法alert出的是“quan”,obj[1]会使用第二个参数。如果越界,即obj[2]或其它的类似越界方式,由于没有传递相应的参数,则返回undefined。
2.还可以用 arguments 对象检测函数的参数个数,引用属性 arguments.length 即可。
2.1方法定义
function testArguments() {
var obj = arguments;
alert(obj.length);
}
2.2方法调用
testArguments('zhang', 'quan');调用方法alert出的是传递的参数个数2.
注意:js不会验证传递给函数的参数个数是否等于函数定义的参数个数。开发者定义的函数都可以接受任意个数的参数(根据 Netscape 的文档,最多可接受 255 个),而不会引发任何错误。任何遗漏的参数都会以 undefined 传递给函数,多余的函数将忽略。
3.在js中不存在方法重载,后定义的方法会把先定义的方法覆盖掉,使其失去作用,使用argumengs参数查看参数个数可以模拟重载的效果。
3.1方法调用
testArguments('zhang','quan');
3.2失去作用的方法,被覆盖
function testArguments(zhang, quan) {
alert(zhang + ';' + quan);
}
3.3后定义的方法,起作用
function testArguments() {
var obj = arguments;
if(obj.length == 0) {
return;
}
if(obj.length == 1) {
alert(obj[0]);
return;
}
alert(obj[0] + '===' + obj[1]);
}