让前端飞Web 前端开发

JavaScript的变量问题

2017-05-06  本文已影响21人  不乱于心_不困于情

关于变量的基本类型和引用类型

1. 基本类型

var num1 = 5; var num2 =num1;

num1中保存的是的值是5,
第二句中用num1来初始化 num2的值
num2中的值也是5,但是两个变量是相互独立的.

2. 引用类型

var obj1 = new Object (); var obj2 = obj1; obj1.name = "zhangsan"; alert(obj2.name); // zhangsan

首先obj1 保存了一个新的对象.
然后这个对象复制给obj2,
那么obj1和obj2都指向同一个对象.
当为obj1添加name属性后那么obj2也可以访问name属性


来看下面这两个例子:

var personA = { name = "wz", age = 18, }; var personB = personA; person.age = 19; console.log(personB.age);


var personA = { name = "wz", age = 18, }; var personB = personA.age; person.age = 19; console.log(personB.name);




第一段代码 :
首先定义了一个变量personA指向一个对象
里面有两个属性分别是name和age,
name和age都是基本变量,
接下来把personA赋值给personB,
实际上是personA和personB指向同一个对象,
然后将19赋值给对象的age属性.
改变了对象属性的值,所以输出是19;


第二段代码所不同的是将对象的age属性的值赋给personB,
这里的personB不再是指向对象的,它是一个具体的值,
所以这里的输出是18!

上一篇 下一篇

猜你喜欢

热点阅读