物件的擴充套件 ES6重刷09

2021-09-28 10:42:18 字數 3115 閱讀 5685

物件擴充套件

一、屬性簡潔表示

const a =

'a'constb=

()=>

'b'const obj =

console.

log(obj)

//

二、屬性名表示式

let obj =

const variable =

'b'obj.a =

'a'obj[variable]

='b'

console.

log(obj)

//

三、屬性特性 — 可配置性(configurable)、可列舉性(enumerable)、可重寫性(writable)

首先我們可以通過object.getownpropertydescriptor(objectname, attrname)得知對應屬性的的相關各項資訊,如

const obj =

console.

log(object.

getownpropertydescriptor

(obj,

'a')

)//

1、可配置性(configurable)作用

當configurable為true時,我們可以使用object.defineproperty(objectname, attrname, config…)

const obj =

console.

log(object.

getownpropertydescriptor

(obj,

'a')

)//

object.

defineproperty

(obj,

'a',

)console.

log(object.

getownpropertydescriptor

(obj,

'a')

)//

console.

log(obj)

//

當configurable為false時,我們就不可以對相應的屬性使用object.defineproperty(objectname, attrname, config…)

const obj =

console.

log(object.

getownpropertydescriptor

(obj,

'a')

)//

object.

defineproperty

(obj,

'a',

)console.

log(object.

getownpropertydescriptor

(obj,

'a')

)//

object.

defineproperty

(obj,

'a',

)

注意:可配置性(configurable)的修改時單向性的,即當我們修改configurable為false後,就無法更改為true

2、可列舉性(enumerable)作用

const obj =

for(

const item in obj )

console.

log(object.

getownpropertydescriptor

(obj,

'a')

)//

object.

defineproperty

(obj,

'a',

)console.

log(object.

getownpropertydescriptor

(obj,

'a')

)//

for(

const item in obj )

適用場景:禁止物件中某些元素的可列舉性,實現遍歷列舉物件時,避免列舉沒必要的屬性資料

3、可重寫性(writable)作用

const obj =

console.

log(object.

getownpropertydescriptor

(obj,

'a')

)//

object.

defineproperty

(obj,

'a',

)console.

log(object.

getownpropertydescriptor

(obj,

'a')

)//

console.

log(obj)

// obj.a =

'abc'

console.

log(obj)

//

適用場景: 凍結物件中的某個屬性值

4、object.freeze(objectname)

const obj =

object.

freeze

(obj)

console.

log(object.

getownpropertydescriptor

(obj,

'a')

)//

注意:凍結的是整個物件,並且凍結每個屬性對應的可配置性(configurable)和可重寫性(writable)

四、super關鍵字【指向的是物件的原型物件】

const proto =

const obj =

}object.

setprototypeof

(obj, proto)

obj.

find

()

五、物件的擴充套件運算子及解構解析【在此就不多加累述了】

陣列的擴充套件 ES6重刷08

在此我會著重講擴充套件運算子 三點運算子 結合對於陣列的一些便捷操作及深拷貝 其次講講array例項的某些新的方法及注意事項 略帶iterator介面個返回值為iterator遍歷器物件的genrator函式function 最後講講哪些資料結構存在內建部署的iterator介面,而對於沒有內建部署...

物件的新增方法 ES6重刷10

在這裡我會寫些自己認為es6此書中常用的物件方法及注意事項 一 object.assign target,source 作用 將所有可列舉屬性的值從乙個或多個源物件 source 複製到目標物件 target target 可以是物件也可以是陣列 source 可以是物件 陣列 字串 允許多個 基本...

變數的解構 ES6重刷02

解構 解構分為兩中,一種為解,另外一種為構 通俗易懂的講就是解包 打包 原始包 const obj 解包 const obj 打包 const test test 解包的情形及注意點 陣列的解包,佔位一一對應,超出則為undefined let a,b d 1,2 3 4 a 1 b 2 d 4物件...