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]

相關文章
相關標籤/搜索