函数隐式参数arguments

在调用函数时,browser每次都会传递两个隐含的参数;
1:this
2:arguments (类数组对象)
--它可以通过索引来操作数据,也可以获取长度
--调用函数时,传递的实参都会在arguments中保存
--arguments.length;可以获取实参的长度
--即使不定义形参,也可以通过arguments来使用实参
3 :arguments 对象中有一个属性 callee ,指向当前函数对象(递归用到)
function f() {
console.log(arguments instanceof Array);//检查是否为数组
//console.log(Array.isArray(arguments))//也可以用数组对象上的isArray()检查
arguments.length;//-->3
arguments[0];-->1

}
f(1,2,3);

//注意
function f(a,b,c) {
arguments[0] = 12;
console.log(a)--->12
}
f(1,2,3)


function f(a,b,c) {
a = 12;
console.log(arguments[0]);-->12
}
f(1,2,3)

//也就说 arguments中的数据与定义的形参时相互关联的


如 arguments.callee递归调用
function f(n) {
if(n<=1) {
return 1;
} else {
return n*arguments.callee(n-1);
}
}

console.log(f(5));
阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页