js物件宣告方式
阿新 • • 發佈:2019-01-08
在JS中,建立物件(Create Object)並不完全是我們時常說的建立類物件,JS中的物件強調的是一種複合型別,JS中建立物件及對物件的訪問是極其靈活的。
JS物件是一種複合型別,它允許你通過變數名儲存和訪問,換一種思路,物件是一個無序的屬性集合,集合中的每一項都由名稱和值組成(聽起來是不是很像我們常聽說的HASH表、字典、健/值對?),而其中的值型別可能是內建型別(如number,string),也可能是物件。
一、由一對大括號括起來
var emptyObj = {};var myObj =
{
'id': 1, //屬性名用引號括起來,屬性間由逗號隔開
};
//var m = new myObj(); //不支援 不知你注意到物件都是用 var 宣告的沒有,像上面的程式碼,就只是簡單的宣告一個物件,它只有一份拷貝,你不能像例項化類物件一樣對它採用new操作,像上面程式碼的註釋部分。這樣就極大的限制了物件的重用,除非你建立的物件只需要一份拷貝,否則考慮用其他方法建立物件。 下面一起看看如何訪問物件的屬性和方法。 var myObj =
{
'id': 1,
'fun': function() {
document.writeln(
'name': 'myObj',
'fun1': function() {
document.writeln(this['id'] +'+'+this['name']);//以集合方式訪問 }
};
myObj.fun();
myObj.fun1();
// 結果// 1-myObj 1+myObj 二、用 function 關鍵字模擬 class 在 function 中用 this 引用當前物件,通過對屬性的賦值來宣告屬性。如果用var宣告變數,則該變數為區域性變數,只允許在類定義中呼叫。
this.id =5;
this.name ='myclass';
this.getName =function() {
returnthis.name;
}
}
var my =new myClass();
alert(my.id);
alert(my.getName());
// 結果// 5// myclass 三、在函式體中建立一個物件,宣告其屬性再返回 在函式體中建立物件可利用第一點的方法,或先 new Object(); 再為各屬性賦值。 不過用這種方式建立的物件在VS2008 SP1中是沒有智慧提示的。 function myClass() {
var obj =
{
'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
四.建立物件陣列的方式
1.物件的定義
[javascript] view plain copy- Function Object(屬性表){
- This.prop1=prop1
- This.prop2=prop2
- ...
- This.meth=FunctionName1;
- This.meth=FunctionName2;
- }
- function university(name,city,createDate,URL){
- This.Name=Name;
- This.city=city;
- This.createDate=New Date(creatDate);
- This.URL=URL;
- This.showuniversity=showuniversity;
- }
- // 其中This.showuniversity就是定義了一個方法---showuniversity()。
- // 而showuniversity()方法是實現university物件本身的顯示。
- function showuniversity(){
- For (var prop inthis)
- alert(prop+="+this[prop]+"");
- }
2.將物件加入物件陣列中 建立物件的陣列的方式有: [javascript] view plain copy
- var mycars=new Array()
- mycars[0]="Saab"
- mycars[1]="Volvo"
- mycars[2]="BMW"
- var mycars=new Array("Saab","Volvo","BMW");
將大學物件加入陣列 [javascript] view plain copy
- U1=New university(“山西省”,“太原市”,"January 05,199712:00:00"," www.shanxiwindow.net ")
- U2=New university(“山西省網路管理中心”,“太原”,"January 07,1997 12:00:00","htlp://www.shanxiwindow.net")
- var universitys = new Array(U1, U2);
參考:1.http://www.cnblogs.com/lucas/archive/2009/03/17/1411656.html 2.http://hi.baidu.com/niewg/item/83250c2d4a43a23295f62b3a 3.http://www.w3school.com.cn/js/js_obj_array.asp