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

关于变量的理解和函数内参数的引用

时间:2017-04-14 12:46:27      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:函数   类型   undefined   ddt   ret   数据段   var   无法   count   

首先理解变量包括两种不同数据类型的值:1.基本类型值 2.引用类型值

基本类型值为简单的数据段,如var name="tom";

                                     name.age=20;

                                     alert(name.age); //undefined  不能给基本类型的值无法添加属性。

引用类型值为可能由多个值构建的对象,如var person=new Object();

                                                      person.age=20;

                                                      alert(person.age); //20  可以给基本类型的值添加属性。

函数内参数的传递:1.基本类型的值传递:function addTen(num){

                                                            num+=10;

                                                            return num;

                                                             };

                                                       var count = 20;

                                                       var result= addTen(count);

                                                      alert(count);  //20 无变化

                                                      alert(result);  //30

                              2.当传入参数的变量时按引用访问的时候: function  setName(obj){
                                                                                   obj.name=‘jerry‘;
                                                                                     }
                                                                                   var person=new Object();
                                                                                    setName(person);
                                                                                    alert(person.name);  //‘jerry‘  

此处的obj和person访问的是同一个对象(new Object());即使这个变量是按值传递的,obj也会按引用来访问同一个对象。当为函数内部的obj添加属性时,外部的person也会做出改变。

                              3.  function  setName(obj){
                                  obj.name=‘jerry‘;
                                  obj= new Object();
                                  obj.name=‘tom‘;
                                     }
                                  var person=new Object();
                                  setName(person);
                                  alert(person.name);  //‘jerry‘  

此处的obj= new Object();为obj重新定义了一个新的对象。所以obj.name=‘jerry‘和person指向同一个对象。而obj= new Object();obj.name=‘tom‘;是一个新对象的引用了,在函数执行完毕后会被销毁。

关于变量的理解和函数内参数的引用

标签:函数   类型   undefined   ddt   ret   数据段   var   无法   count   

原文地址:http://www.cnblogs.com/wyx424/p/6708170.html

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