Js學習(7)標準庫-object對象

Js原生提供Object對象,O大寫,全部的其餘對象都繼承自Object對象,都是Object的實例javascript

Object對象的原生方法分爲兩類:java

自己的方法:直接定義在Object對象的方法數組

實例方法:定義在Object原型對象Object.prototype上的方法,能夠被Object實例直接使用函數

凡是定義在Object.prototype對象上的屬性和方法將被全部實例對象共享工具

 

首先是Object做爲函數的用法spa

(1)工具函數:用來將任意值轉爲對象,這個方法經常使用於保證某個值必定是對象prototype

tips:若是參數爲空(或undefined和null),返回一個空對象對象

         若是參數是原始類型的值,轉換爲對應的包裝對象的實例blog

         若是參數是對象,不用轉換繼承

用法以下:

var obj = Object();
// 等同於
var obj = Object(undefined);
var obj = Object(null);

obj instanceof Object // true

  

(2)構造函數:經過它來生成新對象

兩種形式

var obj = new Object();
var o1 = {a: 1};
var o2 = new Object(o1);
o1 === o2 // true
能夠說var obj={}是var obj=new Object的簡便寫法
具體針對不一樣參數 規則和工具函數時同樣

  

接下來就是Object對象的方法

靜態方法:Object對象自身的方法

Object.keys():參數是一個對象,返回一個數組,該數組的成員都是該對象自身的(非繼承的)全部屬性名

Object.getOwnPropertyNames:與keys方法相似,可是也會返回不可枚舉的屬性

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

Object.keys(a) // ["0", "1"]
Object.getOwnPropertyNames(a) // ["0", "1", "length"]

能夠用這兩個方法計算對象屬性的個數

Object.keys(obj).length;

通常狀況下,幾乎老是使用Object.keys方法,遍歷數組的屬性

其餘靜態方法

 

 

(1)Object.prototype.valueOf()

返回一個對象的值,默認狀況下返回對象自己

主要用途是,JS自動類型轉換時會調用這個方法,能夠自定義valueOf方法,獲得想要的結果

var obj = new Object();
obj.valueOf = function () {
  return 2;
};

1 + obj // 3

(2)Object.prototype.toString

返回一個對象的字符串形式,默認狀況下返回類型字符串

這個是最原始的  返回的字符串說明對象的類型

能夠本身寫 覆蓋

var obj = new Object();

obj.toString = function () {
  return 'hello';
};

obj + ' ' + 'world' // "hello world"

數組,字符串,函數,Date對象都分別部署了自定義的toString方法對此進行覆蓋

這個最原始的能夠用來判斷數據類型,返回的字符串是「【object  對應對象的類型】」 

如數值  返回 【object Number】 

(3)Object.prototype.toLoacleString()

和toString的做用在於:留出一個接口,讓不一樣的對象實現本身版本的toLocalString,用來返回針對某些地域的特定的值

目前主要有三個對象自定義了這個方法

Array  Number   Data

(4)Object.prototype.hasOwnProperty()

接受一個字符串做爲參數,返回一個布爾值,表示該實例對象自身是否具備該屬性

相關文章
相關標籤/搜索