Object.assign(target,…sources):
将源对象的所有自身可枚举的属性和值复制到目标对象。并返回目标对象。
Object.create(obj,[propertiesObject]):
创建一个新对象,obj作为新对象的原型。propertiesObject(可选)为新对象的可枚举属性描述器。
o2 = Object.create({}, {
p: {
value: 42,
writable: true,
enumerable: true,
configurable: true
}
});
Object.defineProperties(obj,propsDes):
在obj上定义新属性或修改现有属性,并返回该对象
let obj = {name:"wlk"}
Object.defineProperties(obj,{
age:{
value:24,
writable:true,
enumerable:true,
configurable:true
}
})
Object.defineProperty(obj,prop,descriptor):
在obj上定义一个新属性prop,或者修改现有属性。并返回这个对象。
Object.defineProperty(obj, "key", {
enumerable: false,
configurable: false,
writable: false,
value: "static"
});
Object.entries(obj):
返回obj自身可枚举属性的键值对数组。与for…in的区别是:for…in也会遍历原型链中的属性
let obj = {name:"wlk",age:24}
for (let [key,value] of Object.entries(obj)){
console.log(key+"--"+vlaue)
}
Object.keys(obj):
返回obj的自身可枚举属性键组成的数组。
Object.values(obj):
返回obj的自身可枚举属性值组成的数组。
Object.freeze():
冻结对象。只能读取属性及其值。
Object.getOwnPropertyDescriptor(obj,prop):
返回obj对象自有属性prop的属性描述符。
Obejct.getOwnPropertyDescriptors(obj):
返回obj对象所有自有属性的描述符。
Object.getOwnPropertyNames(obj):
返回obj对象所有自身属性的属性名数组。
Object.getPrototypeOf(obj):
返回obj的原型。
Object.is(value1,value2):
判断两个值是否相同。
Object.isExtensible(obj):
判断obj是否可扩展
Object.prototype.hasOwnProperty(propName):
返回一个布尔值,指示对象自身属性中是否具有指定的属性。
let obj = {name:"wlk"}
console.log(obj.hasOwnProperty("name"))
Obejct.prototype.isPrototypeOf():
prototypeObj.isPrototypeOf(object)。测试prototypeObj是否是object的原型
Object.prototype.propertyIsEnumerable():
指示指定自身属性是否可枚举。
Object.prototype.toString():
返回一个表示该对象的字符串。该方法可以用于检查对象类型。比如:
Object.prototype.toString.call([]);//[object Array]