JavaScript物件學習筆記二

2021-09-12 16:42:40 字數 2508 閱讀 8561

var obj=;

obj['x'] //通過key字串訪問屬性值

obj.x //通過物件加屬性名訪問

1.用in檢測

x in obj     //結果為true
2.用hasownproperty檢測

obj.hasownproperty('x');
注意:用in檢測會向物件的原型鏈查詢,如果原型鏈有該屬性,而當前物件沒有,也會返回true

而hasownproperty()則只檢測屬性是否在當前物件,不會向原型鏈上查詢。

1.configurable

表示能否通過delete刪除此屬性,能否修改屬性的特性,或能否修改把屬性修改為訪問器屬性,如果直接使用字面量定義物件,預設值為true

2.enumerable

表示該屬性是否可列舉,即是否通過for-in迴圈或object.keys()返回屬性,如果直接使用字面量定義物件,預設值為true

3.writable

能否修改屬性的值,如果直接使用字面量定義物件,預設值為true

4.value

該屬性對應的值,預設為undefined

5.get

乙個給屬性提供 getter 的方法(訪問物件屬性時呼叫的函式,返回值就是當前屬性的值),如果沒有 getter 則為 undefined。該方法返回值被用作屬性值。預設為 undefined

6.set

乙個給屬性提供 setter 的方法(給物件屬性設定值時呼叫的函式),如果沒有 setter 則為 undefined。該方法將接受唯一引數,並將該引數的新值分配給該屬性。預設為 undefined

1.object.defineproperty()

方法會直接在乙個物件上定義乙個新屬性,或者修改乙個物件的現有屬性, 並返回這個物件。如果不指定configurable, writable, enumerable ,則這些屬性預設值為false,如果不指定value, get, set,則這些屬性預設值為undefined

語法:object.defineproperty(obj, prop, descriptor)

obj: 需要被操作的目標物件

prop: 目標物件需要定義或修改的屬性的名稱

descriptor: 將被定義或修改的屬性的描述符

var obj = new object();

object.defineproperty(obj, 'name', )

console.log(obj.name) //張三

2.object.defineproperties()

方法直接在乙個物件上定義乙個或多個新的屬性或修改現有屬性,並返回該物件。

語法: object.defineproperties(obj, props)

obj: 將要被新增屬性或修改屬性的物件

props: 該物件的乙個或多個鍵值對定義了將要為物件新增或修改的屬性的具體配置

var obj = new object();

object.defineproperties(obj, ,

age:

})console.log(obj.name, obj.age) // 張三, 18

3.object.getownpropertydescriptor();

該方法返回指定物件上乙個自有屬性對應的屬性描述符。(自有屬性指的是直接賦予該物件的屬性,不需要從原型鏈上進行查詢的屬性)

語法: object.getownpropertydescriptor(obj, prop)

obj: 需要查詢的目標物件

prop: 目標物件內屬性名稱

var person = 

var desc = object.getownpropertydescriptor(person, 'name');

console.log(desc) 結果如下

//

4.object. getownpropertydescriptors()

所指定物件的所有自身屬性的描述符,如果沒有任何自身屬性,則返回空物件。

語法: object.getownpropertydescriptors(obj)

obj: 需要查詢的目標物件

var person = 

var desc = object.getownpropertydescriptors(person, 'name');

console.log(desc)

//

JavaScript物件學習經驗整理

1.物件的建立方法 1 通過new運算子建立,new後面跟著乙個建構函式名 var object new object 建構函式直接呼叫時通常沒有返回值,它只是初始化由this值傳遞進來的物件 但是與new一起使用時返回乙個物件值作為new表示式的值 2 物件直接量 物件直接量由屬性說明列表構成,列...

JavaScript物件導向程式設計學習筆記

js和其他語言不同,沒有class的概念,要想形成物件導向,就必須依靠他自身乙個非常重要的概念,也是不好理解的乙個東西。那就是原型prototype,使用他可以模擬繼承和類的實現。下面先看乙個簡單的例子 function person name person.prototype var zhang ...

學習筆記 javascript內建物件 日期物件

2.日期物件的常用函式 2.日期物件的常用函式 方法 描述date 返回當日的日期和時間。getdate 從 date 物件返回乙個月中的某一天 1 31 getday 從 date 物件返回一周中的某一天 0 6 getmonth 從 date 物件返回月份 0 11 getfullyear 從 ...