var num1 = 5;<br>var num2 = num1;
num1中保存的值是5,当使用num1的值来初始化num2时,<br>javascript会新开辟一个空间,然后把num1的值复制给num2。<br>这两个变量是完全不一样的。
var obj1 = new Object();<br>var obj2 = obj1;<br>obj1.name = "欧丽珊";<br>
变量obj1保存了一个对象的新实例,<br>obj1是一个指针,指向这个新实例,<br>复制的时候,在栈里新建一个空间,<br>然后在这个空间里放上obj1这个指针的副本,<br>obj1和obj2实际上都指向了同一个空间
new Object()就是在堆里开一个空间,<br>接着在栈开一个空间,这个空间存放指向堆<br>上的新空间的指针,即new会同时开两个空间