JS建立對象和獲取對象屬性的幾種方式

1、由一對大括號括起來javascript

var emptyObj = {}; var myObj = { 'id': 1, //屬性名用引號括起來,屬性間由逗號隔開 'name': 'myName' }; //var m = new myObj(); //不支持

  不知你注意到對象都是用 var 聲明的沒有,像上面的代碼,就只是簡單的聲明一個對象,它只有一份拷貝,你不能像實例化類對象同樣對它採用new操做,像上面代碼的註釋部分。這樣就極大的限制了對象的重用,除非你創建的對象只須要一份拷貝,不然考慮用其餘方法創建對象。
     下面一塊兒看看如何訪問對象的屬性和方法:
  方式1:以 對象.屬性 訪問,例如:p.name
     方式2:以 對象["屬性"] 訪問,例如:p["name"]

var myObj = { 'id': 1, 'fun': function() { document.writeln(this.id + '-' + this.name);//訪問對象屬性方式1:對象.屬性  }, 'name': 'myObj', 'fun1': function() { document.writeln(this['id'] + '+' + this['name']);//訪問對象屬性方式2:對象["屬性]"  } }; myObj.fun(); myObj.fun1(); // 結果 // 1-myObj 1+myObj 



2、用 function 關鍵字模擬 class
在 function 中用 this 引用當前對象,經過對屬性的賦值來聲明屬性。若是用var聲明變量,則該變量爲局部變量,只容許在類定義中調用。
function myClass() { this.id = 5; this.name = 'myclass'; this.getName = function() { return this.name; } } var my = new myClass(); alert(my.id); alert(my.getName()); // 結果 // 5 // myclass


3、在函數體中建立一個對象,聲明其屬性再返回
在函數體中建立對象可利用第一點的方法,或先 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


轉載:http://www.cnblogs.com/lucas/archive/2009/03/17/1411656.html