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也算传入了参数)
varx=10;
console.log(arguments[0]);//10
})(1);
varx=10;
console.log(x,arguments[0]);//10,undefined
})();
上例可以看出形参如果传值是不会因为在函数内定义同名变量而断开引用的
得出结论:arguments与形参是引用关系;arguments与形参的关系是通过实参联系起来的
相关文章推荐
- 你不知道的JavaScript--Item11 arguments对象
- 你不知道的JavaScript--Item11 arguments对象
- JavaScript中的数据类型知识总结(一定有你不知道的秘密~)
- 轻松学习 JavaScript (4):函数中的 arguments 对象
- JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)
- javascript内置对象arguments详解
- 函数 arguments 对象与 call object 之间不得不说的秘密
- JavaScript-Arguments.callee 函数
- 翻译连载 | JavaScript轻量级函数式编程-第7章: 闭包vs对象 |《你不知道的JS》姊妹篇
- 轻松学习 JavaScript——第 4 部分:函数中的 arguments 对象
- 翻译连载 | JavaScript 轻量级函数式编程-第2章:函数基础 |《你不知道的JS》姊妹篇
- 深入解析JavaScript中的arguments对象
- 【HTML+CSS+JavaScript】网页实战开发笔记之一——HTML的头部信息里你不知道的事
- 移动游戏开发,你所不知道的秘密!
- 14个你可能不知道的JavaScript调试技巧
- 你不知道的javascript-中卷
- 14个你不知道的JavaScript调试技巧
- 关于javascript一些你不知道的事.
- Effective JavaScript Item 22 使用arguments来创建接受可变参数列表的函数
- 你不知道的JavaScript--Item35 事件流与事件处理