一、创建对象的两种方式
第一种: var person=new Object(); person.firstname="Bill"; person.lastname="Gates"; person.age=56; person.eyecolor="blue"; 第二种 var person={ firstname:"John", lastname:"Doe", age:50, eyecolor:"blue" };
二、属性类型
1、数据属性
四个特性:
1.1 [[Configurable]]
表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。默认值为true
1.2 [[Enumerable]]
表示能否通过for-in循环返回属性,默认值为true
1.3 [[Writable]]
表示能否修改属性的值,默认值为true
1.4 [[Value]]
表示这个属性的数据值
要修改属性默认的特性,必须使用ECMAScript5的Object.defineProperty()方法,这个属性接受三个参数:属性所在的对象,属性的名字和一个特性。
如果通过Object.defineProperty()方法修改configurable设置为false,表示不能从对象中删除属性。如果对这个属性调用delete,则在非严格模式下什么也不会发生,而在严格模式下会导致错误。而且,一旦把属性定义为false,就不能把它变回true了。
2、访问器属性
访问器属性不包含数据值;他们包含一对getter和setter函数,在读取访问器属性时,会调用getter函数;在写入访问器属性时,会调用setter函数并传入新值。