对象除了包含属性之外,每个对象还拥有3个相关的对象特性:
1.对象的原型(prototype):指向另外一个对象,本对象的属性继承自他的原型对象。
2.对象的类(class):是一个标识对象类型的字符串。
3.对象的扩展标记(extensible flag):指明了是否可以向该对象添加新属性。
一、四种操作对象的方式
1.引用对象
2.复制对象
复制对象比较简单,但是也容易出错,利用for/in语句遍历对象成员,然后逐一赋值给另外一个对象。例如:
3.克隆对象
首先,为Function对象扩展一个方法,该方法能够把参数对象赋值给一个空构造函数的原型对象,然后实例化构造函数,并返回实例对象,这样该对象就拥有构造函数包含的所有成员。然后调用该方法来克隆对象。
4.销毁对象
谈到销毁,javascript中提供了一套回收机制,能够自动回收无用存储单元。当对象没有被任何变量所引用时,javascript会自动侦测,并进行垃圾回收程序把这些对象注销,释放内存。另外,如果对象处于一种不可预知的情况下时,也会被回收处理。在设计中,对于不用的对象,应该把其所有引用变量都设置为null,将对象废除,以释放内存空间。这是一种好的设计习惯,即节省系统开支又可以预防错误。