一敬肚、什么是屬性
屬性是對(duì)象得一部分。屬性包括屬性名和屬性值束析。屬性名可以是包含空字符串在內(nèi)的任意字符串艳馒,但對(duì)象中不能存在兩個(gè)同名的屬性。值可以是任意JavaScript值员寇。除了屬性名和屬性值之外弄慰,每個(gè)屬性還有一些相關(guān)的值,稱為屬性特性:
a.可寫(writable):表明是否可以設(shè)置該屬性的值丁恭;b.可枚舉(enumerable):表明是否可以通過(guò)for/in循環(huán)返回該屬性曹动;c.可配置(configurable):表明是否可以通過(guò)刪除或修改該屬性。
二牲览、定義屬性
使用冒號(hào)可以為對(duì)象定義屬性,冒號(hào)左側(cè)是屬性名恶守,右側(cè)是屬性值第献。屬性與屬性之間通過(guò)逗號(hào)運(yùn)算符進(jìn)行分隔。
在ECMAScript5 中增加了兩個(gè)靜態(tài)函數(shù)兔港,可以修改和添加指定對(duì)象的屬性:Object.defineProperty和Object.defineProperties庸毫。
1.Object.defineProperty函數(shù)介紹
Object.defineProperty可以將屬性添加到對(duì)象,或者修改現(xiàn)有屬性衫樊。具體用法如:
Object.defineProperty(object,propertyname,descriptor)
2.Object.defineProperties函數(shù)介紹
如果要將多個(gè)屬性添加到對(duì)象或者要修改多個(gè)屬性飒赃,可以使用該函數(shù),Object.defineProperties(object,descriptors).例如:
三科侈、訪問(wèn)屬性
1.訪問(wèn)屬性
一般在JavaScript中可以通過(guò)點(diǎn)運(yùn)算符訪問(wèn)屬性载佳,點(diǎn)運(yùn)算符的左側(cè)是對(duì)象引用的變量,右側(cè)是屬性名臀栈,屬性名必須是一個(gè)標(biāo)識(shí)符蔫慧。(注意:如果讀取不存在的屬性時(shí),不會(huì)拋出異常权薯,而是返回undefined)姑躲。ES5中提供了四種方法:Object.getPrototypeOf、Object.getOwnPrototypeDescriptor盟蚣、Object.getOwnPrototypeNames黍析、Object.keys.我們以第一個(gè)函數(shù)為例:Object.getPrototypeOf能夠返回對(duì)象的原型。如:
2.刪除屬性
使用delete運(yùn)算符可以刪除屬性.var o = {x : 1}? ? ?delete? ?o.x ;? ? alert(o.x); //返回undefined屎开。
總結(jié):屬性是對(duì)象的重要組成部分阐枣,屬性的值可以是任意類型的數(shù)據(jù)。屬性靈活,理解屬性是理解JavaScript這種基于對(duì)象語(yǔ)言的重要基礎(chǔ)侮繁。加油吧虑粥!少年。