键盘导航

Object 对象 Object对象的原生方法分成两类:Object本身的方法与Object的实例方法。

Object.print = function (o) { console.log(o) };

(1)Object对象本身的方法
上面代码中,print方法就是直接定义在Object对象上。
(2)Object的实例方法
定义在Object原型对象Object.prototype上的方法。它可以被Object实例直接使用。
Object.prototype.print = function () { console.log(this); }; var obj = new Object(); obj.print() // Object

Object() Object本身是一个函数,可以当作工具方法使用,将任意值转为对象。这个方法常用于保证某个值一定是对象。
instanceof运算符用来验证,一个对象是否为指定的构造函数的实例。obj instanceof Object返回true,就表示obj对象是Object的实例。
如果Object方法的参数是一个对象,它总是返回该对象,即不用转换。
Object 构造函数 Object不仅可以当作工具函数使用,还可以当作构造函数使用,即前面可以使用new命令。
Object 的静态方法 Object.keys(),Object.getOwnPropertyNames()
Object.keys方法和Object.getOwnPropertyNames方法都用来遍历对象的属性。
var obj = { p1: 123, p2: 456 }; Object.keys(obj) // ["p1", "p2"]

var obj = { p1: 123, p2: 456 }; Object.getOwnPropertyNames(obj) // ["p1", "p2"]

var a = ['Hello', 'World']; Object.keys(a) // ["0", "1"] Object.getOwnPropertyNames(a) // ["0", "1", "length"]

【键盘导航】一般情况下,几乎总是使用Object.keys方法,遍历对象的属性
其他方法
(1)对象属性模型的相关方法
  • Object.getOwnPropertyDescriptor():获取某个属性的描述对象。
  • 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():判断某个属性是否可枚举。

    推荐阅读