月度归档:2012年02月

JavaScript的值与引用

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。