关于JavaScript函数及其参数
2016-07-21 09:41
246 查看
问题由来:
可以看到当传入参数为数组的时候,调用函数,参数值改变;但当传入数字时,参数值不变。
问题原因如下:
Js函数的传值和传址参数
传值:只是将变量的值传入函数,函数会另外配置内存保存参数值,所以并不会改变原变量的值。
传址:将变量实际保存的内存位置传入函数,所以如果在函数中变更参数的值,也会同时变动原参数的值。
数字、字符串和布尔----传值
对象、数组和函数----传址
字符串对象-------传址
原文地址:http://www.cnblogs.com/Mblog/archive/2009/12/24/1631215.html
解决方法:函数最后使用 return
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> <script type="text/javascript"> var a = [1,2]; function test1 (aa) { var b = 3; aa.push(b); console.log('aa:' + aa); //[1,2,3] } test1(a); console.log(a); //[1,2,3] /************************************/ var c = 1; function test2 (cc) { var d = 3; cc = cc + d; console.log('cc:' + cc); // 4 } test2(c); console.log(c); // 1 </script> </html>
可以看到当传入参数为数组的时候,调用函数,参数值改变;但当传入数字时,参数值不变。
问题原因如下:
Js函数的传值和传址参数
传值:只是将变量的值传入函数,函数会另外配置内存保存参数值,所以并不会改变原变量的值。
传址:将变量实际保存的内存位置传入函数,所以如果在函数中变更参数的值,也会同时变动原参数的值。
数字、字符串和布尔----传值
对象、数组和函数----传址
字符串对象-------传址
原文地址:http://www.cnblogs.com/Mblog/archive/2009/12/24/1631215.html
解决方法:函数最后使用 return
相关文章推荐
- JavaScript 数组- Array的方法总结(推荐)
- js基础
- js ajax方式拼接参数
- jsp中js文件导入顺序
- [学习笔记]函数的定义与调用
- Javascript如何用一个优雅的姿势通过getStyle函数来获取元素的样式
- [AC自动机 概率DP 矩阵乘法||高斯消元] BZOJ 1444 [Jsoi2009]有趣的游戏
- [AC自动机 DP] BZOJ 1030 [JSOI2007] 文本生成器
- [学习笔记]for、while、do-while 流程控制
- JavaScript函数调用模式
- javascript复习
- js的隐式转换问题
- 原生js写的简单心电图
- EXTJS4.0.7开发积累(12)
- EXTJS4.0.7开发积累(11)
- Web开发之-JSP学习总结-第一篇:JSP总结
- EXTJS4.0.7开发积累(10)
- javascript基础1
- JavaScript 数组- Array的方法总结(推荐)
- 如何用JS判断两个数字的大小