JavasSript 变量的寻址与传递
代码片段 1
1 |
|
代码片段 2
1 |
|
代码片段一就不在讲述,但凡对值类型和引用类型有一定的了解的话,那这个应该是没疑问的。
代码片段二有两个应该注意的地方:
1 test方法内变量的寻址
test
方法内部可以取到三个变量,新定义了的对象obj2、参数obj、还有方法外的obj。
这三个参数有一个特别要注意的地方是,后面两个的名字是一样的,这样在方法运行的时候一定会优先取得参数的那个obj变量。而方法外的那个obj
参数实际相当于window.obj
。
2 变量的传递过程
在调用test
方法,并传入方法外的obj变量,实际相当于传入window.obj这样一个引用类型①,也就是说代码obj = obj2;
实际是对这个拷贝的地址的改变,因为这个地址只是个拷贝,所以这并不会改变其指向的真实对象。而代码片段1的obj.x = 111;
这会通过obj
这个地址查询到x
这个属性,并对其赋值。
other
1 |
|
注:
① 引用类型:引用类型的特点是在传递的过程中并不进行自身的值复制,而是传入地址的拷贝。
转自:http://www.cnblogs.com/rulee/archive/2012/09/03/2663800.html
JavasSript 变量的寻址与传递
https://webclown.net/2016/05/29/Javascript-变量的寻址与传递/