JavaScript 复习之 Object 对象

这里介绍对象原生的各类方法。数组

Object对象的原生方法有两类:对象自己的方法与对象的实例方法。bash

所谓实例方法就是定义在Object原型对象Object.prototype上的方法,能够被实例直接使用。函数

1、Object()

Object自己就是一个函数,能够用于将任意值转化为对象。spa

var obj = Object(1);
obj intanceof Object // true
复制代码

若是Object方法的参数是一个对象,那么他老是返回该对象。prototype

2、Object 构造函数

它不只能够是一个转换函数,还能够看成构造函数使用。code

var obj = new Object();
复制代码

注意,经过var obj = new Object()的写法生成新对象,与字面量的写法var obj = {}是等价的。或者说,后者只是前者的一种简便写法。对象

var o1 = {a: 1};
var o2 = new Object(o1);
o1 === o2 // true

var obj = new Object(123);
obj instanceof Number // true
复制代码

虽然用法类似,可是Object(value)new Object(value)二者的语义是不一样的,前者是将value转换成一个对象,后者是生成一个新对象,可是他的值是value继承

3、Object 的静态方法

一、Object.keys(), Object.getOwnPropertyNames()

二者都是遍历对象的属性。通常来讲二者都是同样,接收一个对象做为参数,返回一个对象属性名的数组。只有涉及不可枚举属性时,才会有不同的结果。ip

var a = ['Hello', 'World'];

Object.keys(a) // ["0", "1"]
Object.getOwnPropertyNames(a) // ["0", "1", "length"]
复制代码

二、其余方法

  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对象。

4、Object的实例方法

主要有如下六个:

  • Object.prototype.valueof():返回对象对应的值
  • Object.prototype.toString():返回对象对应的字符串形式
  • Object.prototype.toLocaleString():返回对象对应的本地字符串形式
  • Object.prototype.hasOwnProperty():判断某个属性是否为当前对象自身的属性,仍是继承自原型对象的属性。
  • Object.prototype.isPrototypeOf():判断当前对象是否为另外一个对象的原型
  • Object.prototype.propertyIsEnumerable():判断某个属性是否可枚举

Object.prototype.toString

不一样数据类型的Object.prototype.toString方法返回值以下。

  • 数值:返回[object Number]

  • 字符串:返回[object String]

  • 布尔值:返回[object Boolean]

  • undefined:返回[object Undefined]

  • null:返回[object Null]

  • 数组:返回[object Array]

  • arguments 对象:返回[object Arguments]

  • 函数:返回[object Function]

  • Error 对象:返回[object Error]

  • Date 对象:返回[object Date]

  • RegExp 对象:返回[object RegExp]

  • 其余对象:返回[object Object]

相关文章
相关标签/搜索