引用类型可以动态添加属性:
var person=new Object();
person.name="admin";
alert(person.name); //admin
基本类型不能动态添加属性:
var name="admin";
name.age=12;
alert(name.age); //undefined
在javascript中String类型属于基本类型,与其它语言不同!
基本类型赋值是将值复制给新变量:
var num1=8;
var num2=num1;
num2=4;
alert(num2);
num2等于num1,值都为8。但num1中8和num2中的8完全独立,互不影响。
引用类型复制是实际上是分配一个指针,这个指针指向的是堆中同一对象,因此相互影响,改变一个变量会影响另一个变量:
var obj1=new Object();
var obj2=obj1;
obj1.name="admin";
alert(obj2.name); // admin
obj1 和 obj2 此时引用的是同一对象,相互影响。