在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建立物件
一 建立單個物件 方式一 object建構函式 var o new object o.key value 方式二 物件字面量 方式一和二缺點 使用相同的介面建立很多物件會產生大量重複 使用方式三解決 方式三 工廠模式 使用函式封裝以特定介面建立物件的細節 function createobject ...
JavaScript 建立物件
工廠模式抽象了建立具體物件的過程,能夠快速建立大量具有相似屬性及方法的物件。function createperson name,age,job obj.name name obj.age age obj.job job obj.sayname function return obj var per...
JavaScript 建立物件
function person var person new person 複製 使用關鍵字new建立新例項物件經過了以下幾步 1 建立乙個新物件,如 var person 2 新物件的 proto 屬性指向建構函式的原型物件。3 將建構函式的作用域賦值給新物件。也所以this物件指向新物件 4 執...