對象的新增方法(筆記)

Object.assign()

1.Object.assign方法用于對象的合并,將源對象的所有可枚舉屬性,復制到目標對象。(淺拷貝)

const target = { a: 1 }; //目標對象
const source1 = { b: 2 }; //源對象
const source2 = { c: 3 }; //源對象

//第一個參數是目標對象,后面的可以設置多個源對象
Object.assign(target, source1, source2);
console.log(target) // {a:1, b:2, c:3}

2.如果對象之間有同名屬性,復制的時候后面的屬性會覆蓋前面的屬性。
3.如果只有一個參數,則直接返回此參數。

const obj = {a: 1};
Object.assign(obj) === obj // true

4.如果該參數不是對象,則會先轉成對象,然后返回。
5.由于undefined和null無法轉成對象,所以如果它們作為第一個參數目標對象,就會報錯。
如果作為源對象參數,源對象中無法轉成對象的,就會跳過,不會報錯。
6.只拷貝源對象的自身屬性(不拷貝繼承屬性),也不拷貝不可枚舉的屬性。

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

1.Object.keys()返回對象所有可遍歷的屬性名(不包含繼承的)

let obj = { a: 1, b: 2, c: 3 };
for (let key of Object.keys(obj)) {
     console.log(key); // 'a', 'b', 'c'
}

2.Object.values() 返回對象所有可遍歷的屬性值(不包含繼承的)

let obj = { a: 1, b: 2, c: 3 };
 for (let key of Object.values(obj)) {
      console.log(key); // '1', '2', '3'
 }

3.Object.entries() 返回對象所有可遍歷的鍵值對數組(不包含繼承的)

let obj = { a: 1, b: 2, c: 3 };

for (let key of Object.entries(obj)) {
    console.log(key); // ["a", 1], ["b", 2],["c", 3]
}
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1.屬性的簡潔表示法 允許直接寫入變量和函數 上面代碼表明,ES6 允許在對象之中,直接寫變量。這時,屬性名為變量...
    雨飛飛雨閱讀 1,261評論 0 3
  • 屬性的簡潔表示法 ES6允許直接寫入變量和函數,作為對象的屬性和方法。 上面代碼表明,ES6允許在對象之中,直接寫...
    oWSQo閱讀 568評論 0 0
  • 屬性的簡潔表示法 ES6允許直接寫入變量和函數,作為對象的屬性和方法。這樣的書寫更加簡潔。 上面代碼表明,ES6允...
    呼呼哥閱讀 3,010評論 0 2
  • 1.屬性的簡潔表示法 ES6 允許直接寫入變量和函數,作為對象的屬性和方法。這樣的書寫更加簡潔。 const fo...
    Masami_9e88閱讀 385評論 0 0
  • 每個人都是一棵繁花似錦的樹 小組練習《界定儀式》,有人當求助者,有2個人當咨詢師,其他成員是見證者。 我報名當求助...
    漂亮的花閱讀 641評論 0 5

友情鏈接更多精彩內容