ES6對象擴展

屬性的簡潔表示法


示例

如果在對象中定義方法,還可以這樣簡寫


示例



屬性名表達式

在定義字面量對象時,ES6允許把表達式放在方括號中用作屬性名。


示例

注意:屬性表達式和簡寫表示法不能同時使用,會報錯,但是可以把屬性表達式和對象內(nèi)方法定義簡寫結(jié)合起來。


示例

方法的name屬性

對象中的方法也是函數(shù),也有name屬性,參看ES6函數(shù)擴展


對象屬性的遍歷

ES6 一共有 5 種方法可以遍歷對象的屬性。

(1)for...in

for...in循環(huán)遍歷對象自身的和繼承的可枚舉屬性(不含 Symbol 屬性)。

大多數(shù)時候,我們只關(guān)心對象自身的屬性。所以,盡量不要用for...in循環(huán),而用Object.keys()代替。

(2)Object.keys(obj)

Object.keys返回一個數(shù)組,包括對象自身的(不含繼承的)所有可枚舉屬性(不含 Symbol 屬性)的鍵名。

(3)Object.getOwnPropertyNames(obj)

Object.getOwnPropertyNames返回一個數(shù)組,包含對象自身的所有屬性(不含 Symbol 屬性,但是包括不可枚舉屬性)的鍵名。

(4)Object.getOwnPropertySymbols(obj)

Object.getOwnPropertySymbols返回一個數(shù)組,包含對象自身的所有 Symbol 屬性的鍵名。

(5)Reflect.ownKeys(obj)

Reflect.ownKeys返回一個數(shù)組,包含對象自身的所有鍵名,不管鍵名是 Symbol 或字符串,也不管是否可枚舉。

以上的 5 種方法遍歷對象的鍵名,都遵守同樣的屬性遍歷的次序規(guī)則。

首先遍歷所有數(shù)值鍵,按照數(shù)值升序排列。

其次遍歷所有字符串鍵,按照加入時間升序排列。

最后遍歷所有 Symbol 鍵,按照加入時間升序排列。


super關(guān)鍵字

我們知道,this關(guān)鍵字總是指向函數(shù)所在的當前對象,ES6 又新增了另一個類似的關(guān)鍵字super,指向當前對象的原型對象。

super關(guān)鍵字表示原型對象時,只能用在對象的方法的簡寫法之中,用在其他地方都會報錯。


對象的擴展運算符

擴展運算符(...)可用于數(shù)組,也可用于對象。

與解構(gòu)賦值結(jié)合


示例

對象的擴展運算符等同于使用Object.assign()方法。


示例

Object.is()

與嚴格比較運算符(===)的行為基本一致。


示例

Object.assign()

Object.assign方法用于對象的合并,將源對象(source)的所有可枚舉屬性,復(fù)制到目標對象(target)。

Object.assign方法的第一個參數(shù)是目標對象,后面的參數(shù)都是源對象。


示例

注意點

(1)淺拷貝

(2)同名屬性的替換

(3)數(shù)組的處理


Object.setPrototypeOf()和 Object.getPrototypeOf()

這是ES6官方推薦的設(shè)置和獲取原型的方法

示例

Object.keys(),Object.values(),Object.entries()

分別用來用來遍歷ES6對象自身的鍵名、鍵值、鍵值對

示例

Object.fromEntries()

很有用,但是node想要直接用好像不行,暫時先放著

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 屬性的簡介表示法 ES6允許在對象之中,只寫屬性名,不寫屬性值。此時,屬性值等于屬性名所代表的變量。如果某方...
    sponing閱讀 942評論 1 5
  • 一、對象屬性的簡潔寫法1、屬性簡寫 2、方法簡寫 二、屬性名表達式在ES5中,定義對象的屬性有兩種方法 如果使用字...
    貴在隨心閱讀 6,227評論 0 4
  • 簡潔表示法 在對象中如果有函數(shù),es6中采用簡潔表示,a(c){},如果在es6中定義一個函數(shù),那么采用箭頭函數(shù)l...
    bjhu電net閱讀 245評論 0 0
  • //簡潔表示法 { let o = 1; let k = 2; // es5 寫法 let...
    super靜_jingjing閱讀 189評論 0 1
  • 函數(shù)新增特性 簡潔表示法 屬性表達式 擴展運算符 Object新增方法 簡介表示法 屬性簡寫 方法簡寫 屬性表達式...
    王童孟閱讀 975評論 0 0

友情鏈接更多精彩內(nèi)容