引用类型赋值问题
这篇文章总结解释的很好,可供参考----------- 引用类型赋值问题
基本数据类型
这个很好理解,因为基本数据类型,只是复制变量的值,那么更改原来变量的值,并不会影响到后面的b的值.本意就是原来a得值.
var a = 1;
var b = a;
a = 3;
console.log("a = " + a); // a = 3
console.log("b = " + b); // b = 1
对象
这里是引用数据类型,因为对象是存在堆里面的,所以保存的是一个指向, 因为
objA
和objB
都指向同一个地址,那么不论谁更改,地址变动了,那么另一个对像内容也会跟着更改.
var objA = {
"name": "abc",
"age": 100
};
var objB = objA;
objA.age = 200;
console.log("objA.age = " + objA.age); //objA.age = 200
console.log("objB.age = " + objB.age); // objB.age = 200
这个是我再别的地方找来的,但是刚开始最后一个打印
female.color
不理解的,研究了下,值得多看…主要是继承方面的,需要多琢磨.(自己品品吧)
function Person() {
this.color = ["yellow", "white"];
}
function SubPerson() {
}
SubPerson.prototype = new Person();
var male = new SubPerson();
console.log("male.color = " + male.color); //male.color = yellow,white
male.color.push("black");
var female = new SubPerson();
console.log("female.color = " + female.color); //female.color = yellow,white,black