对象即是无序属性的集合,其属性可以包含基本值,对象和函数。
一、理解对象
创建自定义对象通常有两种方法,第一种就是创建一个Object的实例,然后再为其添加属性和方法。第二种方法即对象字面量法,一般推荐使用这种方法创建对象。
//第一种
var obj = new Object();
obj.name='name';
obj.sayName=function(){};
//第二种
var obj = {
name : 'name';
sayName:functoin(){};
}
1、属性类型
JavaScript中定义了两种不同的属性:数据属性和访问器属性。数据属性一般用于存储数据数值,而访问器属性一般进行get/set操作,不能直接存储数据数值。
数据属性
var obj={
name:'minRed'//数据属性,此时的[[Value]]值是'minRed'
}
Object.defineProperty(obj,'name',{
configurable:false,
enumerable:false,
writable:false,
value:'holle'
})
数据属性特性:[[Configurable]]、[[Enumerable]]、[[Writable]]、[[Value]](JavaScript不能直接访问他们,用[[]]来表示他们是内部值)。
configurable:true/false,是否可以通过delete删除属性,能否修改属性的特性,能否把属性修改为访问器属性,默认true;
enumerable:true/false,是否可以通过for in循环枚举,默认true;
writable:true/false,是否可以修改属性的值,默认true;
value:undefined,设置属性的值,默认undefined。
要修改属性的特性可以用Object.defineProperty(),三个参数属性所在的对象、属性名、描述符,描述符必须是四个特性中的一个或多个。
访问器属性