原生JavaScript之Object对象常用方法

Object对象—详见:MDN

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]	

你可能感兴趣的:(JavaScript)