es6的對象新增的方法


Object.is

可以看成是=== 的加強版, 其修正了 === 的 NaN 不等於自身, 以及 +0 等於 -0

另外說下, == 會自動轉型, 但是 Object.is 也是如果類型不一致也是不相等的

 

Object.assign

用於對象的合並, 可以把對象的所有可以枚舉屬性復制到目標對象(枚舉屬性包含原型中的屬性嗎??? )  (=== 只拷貝原對象的自身屬性, 不拷貝繼承的, 也不拷貝不可枚舉的)

如果原對象和目標對象有相同的屬性名, 那么原對象會覆蓋掉目標對象中的屬性值 (這個可以用來批量修改一個對象中改變的值)

如果傳入一個字符串, 那么會以數組的形式拷貝到其中, (這是一個很好的分解字符串的方式) 

可以用來處理數組, 但是當做對象來處理的

拷貝的方式是淺拷貝, 就是對於對象中的對象拷貝的是引用

對於取值函數, 不會拷貝取值函數, 是求值后再拷貝 (什么是取值函數??)

用法總結: 

  1. 為對象添加新的屬性

  2. 克隆對象(不克隆原型, 可以使用 Object.create 來指定一個原型)

  3. 合並多個對象

  4. 為屬性指定默認的值(覆蓋的特性)

Object.getOwnPropertyDescriptors

得到一個對象所有屬性的描述對象(注意不是對象, 而是對象的屬性)

Object.setPrototypeOf

設置一個對象的原型

Object.getPrototypeOf

得到一個對象的原型

Object.keys

返回一個數組, 其內容是對象的鍵名

(除了 for in ,  似乎沒有別的遍歷對象的方式了, 要記住引入這個方法的意義)

Object.values

返回一個數組, 其內容死對象的所有的值

Object.entries

返回一個二維數組, 第一個數組存放的是健名, 第二個是值數組

Object.fromEntries

把一個二維數組轉化為一個對象

 

 

 

 


免責聲明!

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



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