javascript物件導向程式設計

2021-06-21 12:42:50 字數 1449 閱讀 3142

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

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

一、由一對大括號括起來

varemptyobj 

={};

varmyobj =;

//var m = new myobj(); //不支援

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

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

varmyobj =,

'name': 

'myobj',

'fun1': 

function

() };

myobj.fun();

myobj.fun1();

//結果

//1-myobj 1+myobj 

二、用 function 關鍵字模擬 class

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

function

myclass() 

}var

my =

newmyclass();

alert(my.id);

alert(my.getname());

//結果//5

//myclass

三、在函式體中建立乙個物件,宣告其屬性再返回

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

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

function

myclass() ;

return

obj;

}function

_myclass() 

varmy 

=new

myclass();

var_my 

=new

_myclass();

alert(my.id);

alert(my.name);

alert(_my.id);

alert(_my.name);

//結果//2

//myclass//1

//_myclass

javascript 學習筆記之物件導向程式設計

物件特殊屬性 資料屬性和訪問器屬性 1 資料屬性 configurable 是否可刪除 enumerable 是否可列舉for in writable 是否可寫 value 值 要修改預設屬性必須使用defineproperty object,key,descriptor 方法 例如 var per...

JavaScript物件導向

方法一 建構函式法 function cat cat.prototype.showname function var cat new cat cat.name tom cat.showname tom 它用建構函式模擬 類 在其內部用this關鍵字指代例項物件。類的屬性和方法,還可以定義在建構函式的...

javaScript物件導向

code 類lecture構造器 使用兩個字串函式,name和teacher function lecture name,teacher 類lecture的方法,生成乙個顯示該課程資訊的字串 lecture.prototype.display function 類schedule的構造器 使用乙個l...