js 建立類 物件的幾種方式

2021-09-01 08:56:44 字數 1519 閱讀 5505

在js中,建立物件(create object)並不完全是我們時常說的建立類物件,js中的物件強調的是一種復合型別,js中建立物件及對物件的訪問是極其靈活的。

js物件是一種復合型別,它允許你通過變數名儲存和訪問,換一種思路,物件是乙個無序的屬性集合,集合中的每一項都由名稱和值組成(聽起來是不是很像我們常聽說的hash表、字典、健/值對?),而其中的值型別可能是內建型別(如number,string),也可能是物件。

[size=x-large]一、由一對大括號括起來[/size]

var emptyobj = {};

var myobj =

;

不知你注意到物件都是用 var 宣告的沒有,像上面的**,就只是簡單的宣告乙個物件,它只有乙份拷貝,你不能像例項化類物件一樣對它採用new操作,像上面**的注釋部分。這樣就極大的限制了物件的重用,除非你建立的物件只需要乙份拷貝,否則考慮用其他方法建立物件。

下面一起看看如何訪問物件的屬性和方法。

var myobj =

,'name': 'myobj',

'fun1': function()

};myobj.fun();

myobj.fun1();

// 結果

// 1-myobj 1+myobj

[size=x-large]二、用 function 關鍵字模擬 class[/size]

在 function 中用 this 引用當前物件,通過對屬性的賦值來宣告屬性。如果用var宣告變數,則該變數為區域性變數,只允許在類定義中呼叫。

function myclass()

}var my = new myclass();

alert(my.id);

alert(my.getname());

// 結果

// 5

// myclass

[size=x-large]三、在函式體中建立乙個物件,宣告其屬性再返回[/size]

在函式體中建立物件可利用第一點的方法,或先 new object(); 再為各屬性賦值。

不過用這種方式建立的物件在vs2008 sp1中是沒有智慧型提示的。

function myclass() ;

return obj;

}function _myclass()

var my = new myclass();

var _my = new _myclass();

alert(my.id);

alert(my.name);

alert(_my.id);

alert(_my.name);

// 結果

// 2

// myclass

// 1

// _myclass

js 建立物件的幾種方式

一 原始方式 解釋 原始方法建立物件,通過new關鍵字生成乙個物件,然後根據js是動態語言的特性新增屬性和方法,構造乙個物件。其中this是表示呼叫該方法的物件。缺點 多次建立物件,則需要重複 多次,不利於 的復用。二 工廠模式 var getage function var getname fun...

js 建立物件的幾種方式

第一種 工廠模式 例1 function createobj name,age return o var per1 createobj 張三 20 per1.sayinfo 缺點 無法知道物件的型別 第二種 建構函式模式 例2 function person name,age var per2 ne...

js建立物件的幾種方式

雖然object建構函式或物件字面量都可以建立單個物件,但這些方式有個明顯的缺點,那就是使用同乙個介面創造很多物件,會產生大量的重複 所以產生了下面幾種模式。1 工廠模式 function createperson name,age,job o.name name o.age age o.job j...