一般上我们可以这样却理解
str int 都是值类型
var a = "5566";
var b = a;
b = "7";
//a 依旧是 5566
值是通过复制过去的。
var obj = {
a : "5566"
}
var obj2 = obj;
obj2.a = 7;
obj.a == 7 //true
对象是共用的。
重要思想 :
当你 var abc = {}; (创建一个对象时,我们暂时叫它对象A),内存就会有一个对象A
而你的var abc 其实只是保持了对这个对象A的指针。
如果你写 var abc = 另一个对象。
就表示你把指针转移去了另一个对象。
而不是把对象A给覆盖掉哦
var 只能改变指针,指向其它对象,而当一个内存对象,没有被任何var指向的时候,那么它会被自动删除掉
所以我们平时写 var abc = null; 其实也只是断开这个 abc和内存对象的指针而已(不要以为是洗掉)
var a = { name: "keatkeat" }; var b = a; b = null; alert(a.name); //依然是存在的
要搞清楚啦 ^^
新闻热点
疑难解答