乐趣区

关于javascript:键盘导航

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():判断某个属性是否可枚举。
退出移动版