1. 程式人生 > >ES6 之 物件的擴充套件

ES6 之 物件的擴充套件

屬性的簡潔表示法

    let book = '234';
    let good = '432';
    let obj01 = {
      book,
      good
    }
    console.log(obj01);

方法名的name屬性

.....

 

Object.is()

    // Object.is() 用來比較倆個值是否嚴格相等,與 === 行為基本一致
    // == 會自動轉化資料型別
    // === NaN不等於 NaN 以及 +0 和 -0
    console.log(Object.is('foo','foo')); //
true console.log(Object.is({},{})); // false console.log(Object.is(+0,-0)); // false console.log(Object.is(NaN,NaN)); // true // +0 不等於 -0 NaN 等於自身

 

Object.assign()

    // Object.assign() 方法將源物件(source)的所有可列舉的屬性複製到目標物件上
    let target = { a: 1 }
    let source1 = { b: 2 }
    let source2 
= { c: 3 } let a = Object.assign(target, source1, source2) // {a: 1, b: 2, c: 3} console.log(a); // 同名屬性 ,後面的屬性 會 覆蓋前面的屬性 // 如果只有一個引數,Object.assign會直接返回該引數 // 如果引數不是物件,則會先轉成物件,然後返回 let target2 = { a: 1 } let b = Object.assign(target2, undefined) // {a: 1} console.log(b); let target3
= { a: 1 } let c = Object.assign(target3, null) // {a: 1} console.log(c);

 

ES6 屬性的遍歷

    // for ... in 
    // Object.key(obj) // 返回一個數組,包括物件自身(不含繼承)的所有可列舉屬性
    // Ojbect.getOwnPropertyNames(obj) // 返回一個數組
    // Ojbect.getOwnPropertySymbols(obj) // 返回一個數組
    // Reflect.ownKeys(obj) // 返回一個數組