<script>
// 基本数据类型
var a = 10;
b = a;
console.log("a:",a,"b:",b);//a: 10 b: 10
// 改变b的值
b = 20;
console.log("a:",a,"b:",b);//a: 10 b: 20
//基本数据类型,没有复杂的结构,就是一个字面量值,所有通过赋值运算符直接将其值改掉,不会影响其它变量
//复杂的数据类型 如:数组 函数 对象等等
var a = {};
var b = a;
console.log("a:",a,"b:",b);//a: {} b: {}
//修改 b 对象中的结构 比如添加一个属性 c 并给属性值设置为一个空对象 {}
b.c = {};
console.log("a:",a,"b:",b);//a: {c: {}} b: {c: {}}
//修改 b 的指向 指向 b.c 这个地址 也就是 a.c的地址
b = b.c;
console.log("a:",a,"b:",b);//a: {c: {}} b: {}
// 再次修改 b 中的结构 添加一个属性d 这个值还是一个空对象 {}
b.d = {};
console.log("a:",a,"b:",b);//a: {c: {d: {}}} b: {d: {}}
// 再次改变 b 的指向 指向 b.d 这个地址 也就是 a.c.d 的地址
b = b.d;
console.log("a:",a,"b:",b);//a: {c: {d: {}}} b: {}
</script>
原文:https://www.cnblogs.com/yess/p/13610739.html