JS對象屬性的引用

轉(zhuǎn)自http://www.cnblogs.com/liping13599168/archive/2007/08/02/839681.html

在JavaScript中,每個(gè)對象可以看作是多個(gè)屬性(方法)的集合,引用一個(gè)屬性(方法)
很簡單,即:
對象名.屬性(方法)名
除此之外,還可以用方括號的形式來引用:
對象名["屬性(方法)名"]
注意,這里的方法名和屬性名是一個(gè)字符串,而非原先點(diǎn)號后面的標(biāo)識符,例如:

var arr=new Array();
//為數(shù)組添加一個(gè)元素
arr["push"]("Leepy");
//獲得數(shù)組的長度
var len=arr["length"];
//輸出數(shù)組的長度
alert(len);
上面的代碼等價(jià)于:
var arr=new Array();
//為數(shù)組添加一個(gè)元素
arr.push( "Leepy");
//獲得數(shù)組的長度
var len=arr.length;
//輸出數(shù)組的長度
alert(len);

這種引用屬性(方法)的方式和數(shù)組類似,也體現(xiàn)出一個(gè)JavaScript對象就是一組屬性(方法)的集合這個(gè)性質(zhì)。
這種用法適合不確定具體要引用哪個(gè)屬性(方法)的場合,例如:一個(gè)對象用于表示用戶資料,這時(shí)一個(gè)字符串表示要使用哪個(gè)屬性,那就可以用這種方式來引用:

<script language="JavaScript" type="text/javascript">
<!--
//定義了一個(gè)User 類,包括兩個(gè)成員age和sex,并指定了初始值。
function User(){
this.age=23;
this.sex="男";
}
//創(chuàng)建user 對象
var user=new User();
//根據(jù)下拉列表框顯示用戶的信息
function show(slt){
if(slt.selectedIndex!=0){
alert(user[slt.value]);
}
}
//-->
</script>
<!--下拉列表框用于選擇用戶信息-->
<select onchange="show(this)">
<option>請選擇需要查看的信息:</option>
<option value="age">年齡</option>
<option value="sex">性別</option>
</select>

在這段代碼中,使用一個(gè)下拉列表框讓用戶選擇查看哪個(gè)信息,每個(gè)選項(xiàng)的value就表
示用戶對象的屬性名稱。這時(shí)如果不采用方括號的形式,就必須使用如下代碼來達(dá)到預(yù)期效果:

function show(slt){
if(slt.selectedIndex!=0){
if(slt.value=="age")alert(user.age);
if(slt.value=="sex")alert(user.sex);
}
}

而使用方括號語法,則只需寫為:
alert(user[slt.value]);
由此可見,方括號語法更像一種參數(shù)語法,可用一個(gè)變量來表示引用對象的哪個(gè)屬性。
如果不采用這種方法,又不想用條件判斷,可以使用eval函數(shù):
alert(eval("user."+slt.value));
這里利用eval函數(shù)的性質(zhì),執(zhí)行了一段動態(tài)生成的代碼,并返回了結(jié)果。
實(shí)際上,在document 的集合對象時(shí),就有類似方括號的用法,比如引用頁面
中一個(gè)名為“theForm”的表單對象,曾經(jīng)的用法是:
document.forms["theForm"];
其實(shí)也可以寫為:
document.forms.theForm;
但這里的forms 對象是一個(gè)內(nèi)部對象,和自定義對象不同的是,它還可以用索引來引用
其中的一個(gè)屬性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 風(fēng)舞煙:中國科技大學(xué)計(jì)算機(jī)專業(yè),微軟認(rèn)證解決方案專家,10多年軟件行業(yè)從業(yè)經(jīng)驗(yàn),參與過數(shù)百萬的企業(yè)級ERP系統(tǒng)以及...
    fwytech閱讀 1,168評論 0 50
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,677評論 0 4
  • 莫負(fù)年年黃花約
    宋小溫閱讀 983評論 18 18
  • let 和 const 箭頭函數(shù) 不僅僅因?yàn)榭梢院唽懀铌P(guān)鍵的是它的this對象為繼承外層代碼塊的thisfunc...
    Pretty_Boy閱讀 408評論 0 0
  • 做為一個(gè)資深的拖延癥患者,在戰(zhàn)拖的路上,屢戰(zhàn)屢敗,屢敗屢戰(zhàn)。今日轉(zhuǎn)念一想,拖延應(yīng)該也是有大大的好處,不然智商情商...
    大衛(wèi)飛思閱讀 2,794評論 5 0

友情鏈接更多精彩內(nèi)容