您的位置:首页 > 其它

30、关于赋值和引用

2016-07-12 21:08 344 查看
关于  =   :

        赋值: ( number string boolean …… )

        引用: ( object(数组也为object)  function )

1、赋值

var a=1;

var b=a;

b++;

alert(a);//=1

alert(b);//=2

申明了变量a并赋值=1,然后新申明变量b,赋值=a,那么此时b就=1。下一步,变量b自增1,最后弹出a、b 。结果很明显,也很正常。

2、引用

var a1=[1,2];

var a2=a1;

a2.push(3);

alert(a1);//=1,2,3

alert(a2);//=1,2,3

申明了变量a1并赋值数组,然后新申明变量a2,赋值=a1,那么此时a2=数组[1,2]。操作a2加入新元素3,那么a2就为[1,2,3],按照常理来说a1应该不变。而结果是a1也等于[1,2,3]。这是因为数组的赋值是为引用,在js中所有对象的赋值都为引用。虽然a2=a1,但不不像变量那样单独赋值,而是引用了数组a1,而操作了a2,就相当等于同时操作了a1。就好比现实中,某人买了一套房子,然后他结婚了,再复制了一份钥匙给妻子,妻子对房子的操作与丈夫对房子的操作是等效的。

3、对象赋值

那么如何对象赋值呢,而不是简单的引用?

var a3=[1,2];

var a4=[];

for(var i in a3)

{
a4.push(a3[i]);

}

a4.push(3);

alert(a3);//=1,2

alert(a4);//=1,2,3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: