ES6(6) 對象的擴展

Object.getOwnPropertyDescriptor() 得到某個對象中某個屬性的特徵
Object.defineProperty() 精細化設置一個對象的屬性
Object.defineProperties() 精細化設置一個對象的多個屬性
Object.getOwnPropertyNames() 得到對象中自已內部的所有的屬性,放到一個數組中
Object.create() 用於對字面量對象實現繼承
Object.getPrototypeOf() 得到一個對象的原型對象
Object.preventExtensions() 不允許新增
Object.seal() 不允許新增、也不允許刪除
Object.freeze() 不允許新增、不允許刪除,不允許修改
Object.keys() 得到對象中所有的屬性(包含它自己的和它原型上),放到一個數組中

let obj = {
  company: "百度",
  address: "北京"
};
let rs = Object.keys(obj);
console.log(rs); //[ 'company', 'address' ]

Object.values() 得到對象中所有的屬性(包含它自己的和它原型上)的值,放到一個數組中

let obj = {
  company: "百度",
  address: "北京"
};
let rs = Object.values(obj);
console.log(rs); //[ '百度', '北京' ]

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

格式:var newObj = Object.assign(目標對象,源對象1,源對象2...)
let obj  = {}
let obj1 = {
  name: "wangcai",
  age: 20
};
let obj2 = {
  address: "beijing",
  hobby: "sing"
};
let res = Object.assign(obj,obj1,obj2)
console.log(res)
// { name: 'wangcai', age: 20, address: 'beijing', hobby: 'sing' }

需要注意的是Object.assign方法實行的是淺拷貝,拷貝的屬性是有限制的,只能拷貝源對象的自身屬性(不拷貝繼承屬性),也不拷貝不可枚舉的屬性

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