1. 程式人生 > >js中物件的理解

js中物件的理解

以下是我對js中物件的一些理解 ,簡述了 什麼是物件 , 物件的建立, 使用 以及其屬性。

js物件是j's的基本資料型別, js中的物件是動態的, 可以新增屬性,也可以刪除屬性。

物件中最常用的用法是建立(create),設定(set),查詢(query),刪除(delete),檢查(test),列舉(enumerate)。

一. js中的物件具有三類物件兩類屬性:

內建物件:是由ECMAScript規範定義的物件或類。例如:陣列, 日期,函式,和正則表示式都是內建物件。

宿主物件:由js直譯器所嵌入的宿主環境(比如web瀏覽器)定義的。那麼宿主物件也可以當成內建物件。

自定義物件:是由執行中的js的程式碼所建立的物件。

自有屬性:是直接在物件中定義的屬性。

繼承屬性:是在物件的原型物件中定義的屬性。

二. 物件的建立的三種方法:直接量方法, new關鍵方法, Object.create()

1.直接量方法:

var object = {};//建立一個空的物件,該物件繼承object.prototype

2.new關鍵字方法

var object = new Object();//用new關鍵字建立的空物件, 同樣繼承object.prototype

var data = new Date()://繼承Date.prototype

Date.prototype繼承object.prototype, 而data同時繼承Date.prototype和object.prototype,這就夠成了“原型鏈”。

3.object.create()

var object = Object.create({x:1,y:2});//建立的object物件繼承了x y屬性
var object1=Object.create(Object.prototype);//建立了一個空的物件

三.物件屬性的訪問和設定的兩種方法, 以及二者的區別:

1. 通過物件名"."來訪問或設定:

var name  = object["name"];

2.通過“[]”來訪問或設定:

var name = object.name;

以上兩種方式都可以; 但是我們推薦使用"[]",當物件的屬性為關鍵字時, 使用“[]”不會報錯, 例如object[“class”];

當我們需要動態改變屬性例如在程式中修改屬性時可以使用“[]”因為這種寫法訪問屬性時, 他是使用的字串形式:如下

for(var i = 0; i<5;i++){
   var add ;
   add += object["name"+i];
}

四 物件的繼承; 

物件的屬性可以繼承;當我們修改物件的某個屬性, 而這個屬性已經從原型上繼承了, 我們只會修改該物件的屬性, 而不是原型上的屬性。