JavaScript,很少能讓人想到它物件導向的特性,甚至有人說它不是物件導向的語言,因為它沒有類。沒錯, JavaScript 真的沒有類,但 JavaScript 是物件導向的語言。 JavaScript 只有對象,對象就是對象,不是類的執行個體。
因為絕大多數物件導向語言中的對象都是基於類的,所以經常有人混淆類的執行個體與對象的概念。對象就是類的執行個體,這在大多數語言中都沒錯,但在 JavaScript 中卻不適用。JavaScript 中的對象是基於原型的。
建立和訪問
JavaScript 中的對象實際上就是一個由屬性群組成的關聯陣列,屬性由名稱和值組成,值的類型可以是任何資料類型,或者函數和其他對象。注意 JavaScript 具有函數式編程的特性,所以函數也是一種變數,大多數時候不用與一般的資料類型區分。
在 JavaScript 中,你可以用以下方法建立一個簡單的對象:
var foo = {};foo.prop_1 = 'bar';foo.prop_2 = false;foo.prop_3 = function() {return 'hello world';}console.log(foo.prop_3());
以上代碼中,我們通過 var foo = {}; 建立了一個對象,並將其引用賦值給 foo,
通過 foo.prop1 來擷取它的成員並賦值,其中 {} 是對象字面量的表示方法,也可以用 var foo = new Object() 來顯式地建立一個對象。
1. 使用關聯陣列訪問對象成員
我們還可以用關聯陣列的模式來建立對象,以上代碼修改為:
var foo = {};foo['prop1'] = 'bar';foo['prop2'] = false;foo['prop3'] = function() {return 'hello world';}
在 JavaScript 中,使用句點運算子和關聯陣列引用是等價的,也就是說任何對象(包括
this 指標)都可以使用這兩種模式。使用關聯陣列的好處是,在我們不知道對象的屬性名稱的時候,可以用變數來作為關聯陣列的索引。例如:
var some_prop = 'prop2';foo[some_prop] = false;
2.使用對象初始化器建立對象
上述的方法只是讓你對JavaScript對象的定義有個瞭解,真正在使用的時候,我們會採用下面這種更加緊湊明了的方法:
var foo = { 'prop1': 'bar', prop2: 'false', prop3: function (){ return 'hello world'; }};
這種定義的方法稱為對象的初始化器。注意,使用初始化器時,對象屬性名稱是否加引號是可選的,除非屬性名稱中有空格或者其他可能造成歧義的字元,否則沒有必要使用引號。
以上就是javascript建立和訪問對象的實現方法,希望對大家的學習有所協助。