您的位置:首页 > Web前端 > JavaScript

JavaScript arguments你不知道的秘密

2014-07-24 00:11 267 查看
(functiontest(x){
x=10;
console.log(arguments[0],x);//undefined,10
})();

(functiontest(x){
x=10;
console.log(arguments[0]);//10
})(1);

(functiontest(x){
x=10;arguments[0]=2;
console.log(x,arguments[0]);//10,2
})();

(functiontest(x){
x=10;arguments[0]=2;
console.log(x,arguments[0]);//2,2
})(1);

(functiontest(x){
x=10;arguments[0]=2;
console.log(x,arguments[0]);//2,2
})(undefined);



由上面函数可得出结论,形参和arguments[i]是引用关系,但是是在形参调用时有传参的前提下(传入undefined也算传入了参数)

(functiontest(x){
varx=10;
console.log(arguments[0]);//10
})(1);


(functiontest(x,y){
varx=10;
console.log(x,arguments[0]);//10,undefined
})();

上例可以看出形参如果传值是不会因为在函数内定义同名变量而断开引用的

得出结论:arguments与形参是引用关系;arguments与形参的关系是通过实参联系起来的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: