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方法實行的是淺拷貝,拷貝的屬性是有限制的,只能拷貝源對象的自身屬性(不拷貝繼承屬性),也不拷貝不可枚舉的屬性