物件的屬性型別詳解

2022-08-23 21:30:15 字數 849 閱讀 5287

1. 屬性型別

物件的屬性型別,描述了屬性(property)的各種特徵。

ecmascript中有兩種屬性型別:資料屬性和訪問器屬性。

1.1  資料屬性。

資料屬性包含乙個資料值的位置。在這個位置可以讀取和寫入值。資料屬性有4個描述其行為的特性:

要修改屬性的特性,必須使用ecmascript5的object.defineproperty()方法。這個方法接受三個引數:屬性所在的物件、屬性的名字和乙個描述符物件。其中,描述符(descriptor)物件的屬性必須是:configurable、enumerable、writable和value。設定其中的乙個或多個值,可以修改對應的特性值。

1.2 訪問器屬性

訪問器屬性不包含資料值:它們包含一對getter和setter函式;訪問器屬性有如下4個特性:

訪問器屬性不能直接定義,必須使用object.defineproperty()來定義。 

2. 定義多個屬性

ecmascript5定義了乙個object.defineproperties()方法,利用這個方法可以通過描述符一次定義多個屬性。這個方法接收兩個物件引數:第乙個物件是要新增和修改其屬性的物件,第二個物件的屬性與第乙個物件中藥新增或修改的屬性一一對應。

3. 讀取屬性的特性

ecmascript5的object.getownpropertydescriptor()方法,可以取得給定屬性的描述符。這個方法接收兩個引數:屬性所在的物件和要讀取其描述符的屬性名稱。返回值是乙個物件,如果是訪問器屬性,這個物件的屬性有configurable、enumerable、get和set;如果是資料屬性,這個物件的屬性有configurable、enumerable、writable和value。

物件導向(屬性型別)

修改屬性預設值使用object.defineproperty 接收三個引數,屬性所在的物件,屬性的名字和乙個描述符物件 描述符物件必須為configurable enumerable writable value var person object.defineproperty person,nam...

js物件屬性型別 資料型別

js物件屬性型別分為兩類 1.資料型別 2.訪問器型別。1.資料型別 例如 var obj console.log obj.name obj的名字 obj.name obj修改後的名字 console.log obj.name obj修改後的名字 for o in obj delete obj.na...

java獲取物件屬性型別 屬性名稱 屬性值

因為專案需要用到,於是簡單封裝了一些常用的操作 根據屬性名獲取屬性值 private object getfieldvaluebyname string fieldname,object o object value method.invoke o,new object return value c...