在JS中,創建對象(Create Object)並不完全是我們時常說的創建類對象,JS中的對象強調的是一種複合類型,JS中創建對象及對對象的訪問是極其靈活的。
JS物件是一種複合類型,它允許你透過變數名稱儲存和訪問,換一種思路,物件是一個無序的屬性集合,集合中的每一項都由名稱和值組成(聽起來是不是很像我們常聽到的HASH表、字典、健/值對?),而其中的值類型可能是內建類型(如number,string),也可能是物件。
一、由一對大括號括起來
複製程式碼
程式碼
程式碼
var emptyObj = {};
var myObj =
{
'id': 1, //屬性名稱用引號括起來,屬性間由逗號隔開
' name': 'myName'
複製程式碼
程式碼如下:
var myObj =
var myObj =
{;>' ': 1,
'fun': function() {
document.writeln(this.id '-' this.name);//以"物件.屬性"方式存取
},
'name': 'myObj',
'fun1': function() {
document.writeln(this['id'] ' ' this['name']);//以集合方式存取
}
}; myObj.fun();
myObj.fun1();
>
二、用function 關鍵字模擬class
在function 中用this 引用當前對象,透過對屬性的賦值來宣告屬性。如果用var宣告變量,則該變數為局部變量,只允許在類別定義中呼叫。
複製程式碼
程式碼如下: function myClass() {
}
var my = new myClass() ;
alert(my.id);
alert(my.getName());
// 結果
// 5
// myclass
三、在函數體中創建一個對象,聲明其屬性再返回
在函數體中創建對象可利用第一點的方法,或先new Object(); 再為各屬性賦值。
不過用這種方式建立的物件在VS2008 SP1中是沒有智慧提示的。
複製程式碼
程式碼如下:
function myClass() {
function myClass() {
> 🎜>{ 'id':2, 'name':'myclass' }; return obj; } function _myClass() { var obj = new Object(); obj.id = 1; obj.name = '_myclass'; return obj; } var my = new myClass(); var _my = new _myClass(); alert(my.id); alert(my.name); alert(_my.id); alert(_my.name); // 結果// 2 // myclass // 1 // _myclass