ObjectObjectObject对象的原生方法分为两类:Object本身的方法和Object的实例方法。Object.print=function(o){console.log(o)};(1)Object对象本身的方法在上面的代码中,打印方法是直接定义在Object对象上的。(2)Object的实例方法Object.prototype定义在Object原型对象上的方法。它可以直接被Object实例使用。Object.prototype.print=function(){console.log(this);};varobj=newObject();obj.print()//ObjectObject()Object本身是一个函数,可以作为工具方法,将任何值转换为对象。该方法常用于确保一个值必须是一个对象。instanceof运算符用于验证对象是否是指定构造函数的实例。objinstanceofObject返回true,这意味着obj对象是Object的一个实例。如果Object方法的参数是一个对象,它总是返回该对象,即不进行转换。对象构造函数对象不仅可以作为实用函数使用,还可以作为构造函数使用,即前面可以使用new命令。对象的静态方法Object.keys()、Object.getOwnPropertyNames()、Object.keys方法和Object.getOwnPropertyNames方法用于遍历对象的属性。varobj={p1:123,p2:456};Object.keys(obj)//["p1","p2"]varobj={p1:123,p2:456};Object.getOwnPropertyNames(obj)//["p1","p2"]vara=['Hello','World'];Object.keys(a)//["0","1"]Object.getOwnPropertyNames(a)//["0","1","length"]一般情况下,Object.keys方法几乎都是用来遍历对象的属性其他方法(1)对象属性模型相关方法Object.getOwnPropertyDescriptor():获取propertyofaproperty描述对象。Object.defineProperty():通过描述对象来定义一个属性。Object.defineProperties():通过描述对象来定义多个属性。(2)Object.preventExtensions()方法控制对象的状态:防止对象扩展。Object.isExtensible():判断对象是否可扩展。Object.seal():禁用对象配置。Object.isSealed():判断一个对象是否可配置。Object.freeze():冻结一个对象。Object.isFrozen():判断一个对象是否被冻结。(3)原型链相关方法Object.create():该方法可以指定原型对象和属性,并返回一个新的对象。Object.getPrototypeOf():获取对象的Prototype对象。Object的实例方法Object实例对象的方法主要有以下六种。Object.prototype.valueOf():返回当前对象对应的值。Object.prototype.toString():返回当前对象对应的字符串形式。Object.prototype.toLocaleString():返回当前对象对应的本地字符串形式。Object.prototype.hasOwnProperty():判断一个属性是当前对象本身的属性还是从原型对象继承的属性。Object.prototype.isPrototypeOf():判断当前对象是否是另一个对象的原型。Object.prototype.propertyIsEnumerable():判断一个属性是否可枚举。
