型別擴充 Object

  • 更簡潔的屬性和方法宣告。
    ES6允許只寫屬性名稱,屬性值為屬性名稱所代表的變數值
    方法也可以簡寫
  • Object.is(value1, value2) : 可對兩個值或物件進行嚴格比較。與===不同之處有兩個:+0不等於-0; NaN不等於NaN
  • Object.assign(target, ...sources) : 將至少一個的來源物件(source)所有屬性(不包含不可列舉和繼承的屬性)複製到目標物件(target)。若有同名屬性的話,會以後面的屬性為主。 常用用途為合併或複製物件。
  • Object.observe(),Object.unobserve() : 為物件增加或取消監聽事件。Object.observe方法的第一個參數是要監聽的物件,當物件發生變化時,便會觸發第二個參數的callback函數執行,第三個選擇性的參數可加入一些特定的event,例如更新屬性值時才需要通知。將此方法配合jQuery的Changes方法,可以實現data-binding,自動更新DOM。
    目前可增加特定的event有:
    • add: 新增屬性
    • update : 更新屬性值
    • delete : 刪除屬性
    • setPrototype : 設定原型
    • preventExtensions : 物件禁止擴充

      目前屬於ES7的規格,僅Chrome 36版跟Opera起有支援