javascript如何建立一個物件

admin發表於2017-02-11

作為一門物件導向的語言,物件是javascript中基本的資料型別,物件是屬性的無序集合。在c#這樣的標準的物件導向的語言中,可以宣告通過使用class宣告一個類,然後通過使用new運算子呼叫建構函式(函式名和類名相同)即可宣告一個物件例項,例如:

[JavaScript] 純文字檢視 複製程式碼
class myclass{}
myclass myobject=new myclass()

上面是c#中宣告一個類和建立一個類的物件例項的程式碼,使用class宣告瞭一個名為myclass的類,然後通過new運算子呼叫它的建構函式myclass()建立一個例項。這裡可能javascript的學習者就會有這樣的疑問:既然javascript也是物件導向的,那麼怎麼宣告javascript中的類(javascript中並沒有類這個概念,可以權且理解為類),如何建立類的物件例項呢,下面通過例項簡單介紹一下:

一.直接量方式:

這是最簡單的一種建立javascript物件的方式,直接量就是由大括號包裹的若干個名/值對組成的對映表,名與值之間需要用冒號分隔,每兩個名/值對之間用逗號分隔,這裡的名就是物件的屬性名稱,值就是相應屬性的屬性值。程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
var website={
webname:"螞蟻部落",
age:2,
address:"山東青島"  
}

以上程式碼就是使用直接量方式建立一個具有三個屬性的物件,建立物件例項的方式貌似和c#的方式完全不一樣。

二.使用new運算子方式:

這種方式貌似比較接近於c#建立物件例項的方式,例項如下:

[JavaScript] 純文字檢視 複製程式碼
var website =new Object()
website.webname="螞蟻部落";
website.age=2;
website.address="山東青島";

使用new運算子呼叫Object()建構函式可以建立一個物件。第一種建立物件的方式其實和第二種是等效。在這裡重提如何宣告一個javascript中的“類”,在上面的程式碼中,很自然的認為Object就是一個類,還有String、Date和Array等,在js中自然不是通過class關鍵字來宣告的,那麼在js中是怎麼宣告的呢,下面看一段程式碼:

[JavaScript] 純文字檢視 複製程式碼
var myString=new String("螞蟻部落");

以上程式碼建立了一個字串例項,可以認為String是一個"類",通過使用new運算子呼叫String"類"的建構函式String()來建立的,那麼這個String"類"是怎麼建立的,那麼看一下瀏覽器的分析,截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201702/11/130307s8w878475d875tlw.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

從以上的截圖可以看出String"類"是通過function關鍵字建立的,也就是說在js中關鍵字function類似於c#中的關鍵字class可以用來宣告一個"類",再進一步說就是在js中,函式可以認為是一個"類",當使用new運算子呼叫這個函式的時候就可以建立一個物件。下面我們自己宣告一個js中的"類",然後再建立一個物件,程式碼示例如下:

[JavaScript] 純文字檢視 複製程式碼
function jsclass(){
  this.x=1;
  this.y=2;
}
var jsobject=new jsclass();

在以上程式碼中,使用function關鍵字建立了一個js中的"類"jsclass,然後通過new運算子呼叫建構函式jsclass()就可以建立一個物件。

相關文章