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

引用类型传递参数到底传的是值还是引用

时间:2015-05-08 08:08:32      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:


  function setName(obj){
    obj.name="ABC";
    obj=new Object();
    obj.name="BCD";
  }
  var person=new Object();
  setName(person);
  alert(person.name);// ABC


   执行结果是:ABC。实例3与实例2的区别是在函数中又加了2行代码,在给obj对象新加一个属性name并赋值后 又将obj定义成了一个新的对象(new Object()),定义新对象后又name赋上新的值“BCD”。这个时候如果是按引用传递的话,那么最后person对象就会自动修改为指向其 name属性为"BCD"的新对象,但最后显示的却是“ABC”,这说明即使在函数内部修改了参数的值,但原始的引用还保持不变。实际上,当在函数内部 obj=new Object()时 这个新的obj就已经成为函数内部的局部对象了,这个对象会在函数执行完毕后自动销毁。

介于2中类型之间的特殊的字符串类型:
 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>基本类型/引用类型--字符串</title>
    <script text="text/javascript">
    //字符串比较特殊,长度不固定应该引用,可是某些行为又像基本类型的
        var a="hello";
        var b=a;//拷贝的引用值--想象成一个指针
        a="你好";//实际上是又建立另外一个字符串"你好"并指向它
        alert(b);//hello
        
        //字符串算是一种不变对象
    </script>
    </head>
    <body>

    </body>
</html>

引用类型传递参数到底传的是值还是引用

标签:

原文地址:http://www.cnblogs.com/maruco2020/p/4486649.html

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