example-1
var obj1 = new Object();
var obj2 = obj1;
obj1.name = "michael"
alert(obj2.name == obj1.name); //return true;
obj1,obj2 同为对象,obj1 虽然有修改对象属性,但其 obj2 与 obj1 对象指向同一对象,即便动态修改对象的属性值,其对象的引用还是一致。所以返回 true。
example-2
var str1 = "hello world";
var str2 = str1;
str1 += " china";
alert(str1 == str2); //return false;
String 对象为基础对象,在JavaScript运行中直接指向地址,当 str1 发生改变时,已经重新创建了新的对象,所以 str1 与 str2 返回 false。