對象的新增方法


Object.is()

這個方法是爲了彌補=====的問題的。

  • ==的問題。會自動轉換數據類型
  • ===的問題。NaN不等於自身,以及+0等於-0

es6提出了“Same-value equality”(同值相等)算法。

+0 === -0 //true
NaN === NaN // false

Object.is(+0, -0) // false
Object.is(NaN, NaN) // true

Object.assign()

Object.assign方法用於對象的合併,將源對象(source)的所有可枚舉屬性,複製到目標對象(target)。

注意,如果目標對象與源對象有同名屬性,或多個源對象有同名屬性,則後面的屬性會覆蓋前面的屬性。

const target = { a: 1, b: 1 };

const source1 = { b: 2, c: 2 };
const source2 = { c: 3 };

Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}

❗️

  • Object.assign方法實行的是淺拷貝,而不是深拷貝
  • 如果目標對象與源對象有同名屬性,或多個源對象有同名屬性

Object.getOwnPropertyDescriptors()

返回指定對象所有自身屬性(非繼承屬性)的描述對象。

__proto__屬性,Object.setPrototypeOf(),Object.getPrototypeOf()

__proto__內置屬性用來獲取對象的原型對象。setPrototypeOf用來設置對象的原型對象,getPrototypeOf用來獲取對象的原型對象。

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

  • Object.keys方法,返回一個數組,成員是參數對象自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵名
  • Object.values方法返回一個數組,成員是參數對象自身的(不含繼承的)所有可遍歷(enumerable)屬性的值
  • Object.entries()方法返回一個數組,成員是參數對象自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵值對數組

Object.fromEntries()

Object.fromEntries()方法是Object.entries()的逆操作,用於將一個鍵值對數組轉爲對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章