一、什么是属性
属性是对象得一部分。属性包括属性名和属性值。属性名可以是包含空字符串在内的任意字符串,但对象中不能存在两个同名的属性。值可以是任意JavaScript值。除了属性名和属性值之外,每个属性还有一些相关的值,称为属性特性:
a.可写(writable):表明是否可以设置该属性的值;b.可枚举(enumerable):表明是否可以通过for/in循环返回该属性;c.可配置(configurable):表明是否可以通过删除或修改该属性。
二、定义属性
使用冒号可以为对象定义属性,冒号左侧是属性名,右侧是属性值。属性与属性之间通过逗号运算符进行分隔。
在ECMAScript5 中增加了两个静态函数,可以修改和添加指定对象的属性:Object.defineProperty和Object.defineProperties。
1.Object.defineProperty函数介绍
Object.defineProperty可以将属性添加到对象,或者修改现有属性。具体用法如:
Object.defineProperty(object,propertyname,descriptor)
2.Object.defineProperties函数介绍
如果要将多个属性添加到对象或者要修改多个属性,可以使用该函数,Object.defineProperties(object,descriptors).例如:
三、访问属性
1.访问属性
一般在JavaScript中可以通过点运算符访问属性,点运算符的左侧是对象引用的变量,右侧是属性名,属性名必须是一个标识符。(注意:如果读取不存在的属性时,不会抛出异常,而是返回undefined)。ES5中提供了四种方法:Object.getPrototypeOf、Object.getOwnPrototypeDescriptor、Object.getOwnPrototypeNames、Object.keys.我们以第一个函数为例:Object.getPrototypeOf能够返回对象的原型。如:
2.删除属性
使用delete运算符可以删除属性.var o = {x : 1} delete o.x ; alert(o.x); //返回undefined。
总结:属性是对象的重要组成部分,属性的值可以是任意类型的数据。属性灵活,理解属性是理解JavaScript这种基于对象语言的重要基础。加油吧!少年。