JavaScript對象中的屬性(可寫,可配置,可枚舉,value,getter,setter)


JavaScript中,對象包括3個特性,分別為,可擴展性,class標識符,屬性。 

如果對象的可擴展性為false,則不可為對象動態的添加屬性。
 
對象包含分為存取器屬性和值屬性。存取屬性為 {get r(){/*函數實現*/},set r(){/*函數實現*/}} 存取器屬性自身不能保存值,set相當於對對象中其他的屬性進行更改。get中也可以返回其他屬性的值。屬性的特性值為 可寫性,可配置性,value,可枚舉性。存取器屬性使用get,set屬性來替換可寫性和value.
在沒有實現ES5的瀏覽器中,使用__lookupGetter____lookupSetter__,方法第一個參數為屬性名,第二個參數為function
來查看get set屬性 通過 __lookupGetter__('x')__ 參數為屬性名
通過Object.getownpropertydescriptor(對象,屬性名) ,Object.defineProperty用此方法來添加屬性,可以配置特性值。如果屬性已存在,則修改特性值。Object.defineProperties 定義多個屬性(對象,{
屬性名:{特性值}
}) 一旦可配置性修改為false,則不可再次修改可配置性。其余特性修改有規則
可配置性為false,可寫行可有true修改為false.其余基本都是不可變的。
 
對象.isPrototypeOf(a)指定對象原形鏈上是否有a,和 instanceof工作原理一樣
對象.propertyIsEnumerable(屬性) 屬性是否為可枚舉
對象.hasOwnProperty(屬性) 屬性是否為自有屬性
 
in 關鍵詞可以檢測對象及其原形鏈上是否有某個屬性
 
var 聲明的變量不可以用delete刪除
可配置為false的屬性也不可以


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM