码迷,mamicode.com
首页 > 其他好文 > 详细

【笔记】关于函数的参数传递

时间:2015-04-20 16:36:02      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:

JavaScript中函数参数的传递:

  1. 如果传递的是基本类型变量,仅仅复制一份值给此参数,函数内部的变动不会影响该外部变量
  2. 如果传递的是引用类型变量,也是复制一份对象的引用给此参数,函数内部对该引用指向的对象的修改会影响外部变量

这两种参数传递均是按值传递。

下面仅验证第二种情况:

 1 function setName(obj){
 2     obj.name= "Lily";
 3 }
 4 
 5 var person = new Person();
 6 setName(person);
 7 
 8 alert(person.name);  //Lily
 9 
10 
11 /*
12  * 函数内部为对象添加了name属性并赋值Lily
13  * 外部对象访问name属性,值为Lily
14 */
 1 function setName(obj){
 2     obj.name= "Lily";
 3     obj = new Person();
 4     obj.name="Lucy";
 5 }
 6 
 7 
 8 var person = new Person();
 9 setName(person);
10 alert(person.name);//Lily
11 
12 
13 /*
14  *函数内部虽然为obj重新设置了引用并对新对象进行了操作,但是并没有影响原来的对象实例
15  *说明传递给obj的值是一个复制的地址(引用),而非引用
16 */

 

【笔记】关于函数的参数传递

标签:

原文地址:http://www.cnblogs.com/huyang0528/p/4441820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!