JS訪問對象兩種方式區(qū)別解析
可以使用下面兩種方式訪問對象的屬性和方法
1.對象名.屬性名對象名.方法名()
2.對象名['屬性名'] 對象名'方法名'
var obj = { name : '小明', age : 18, say : function(){ console.log('我是'+this.name+'我'+this.age+'歲'); } }; console.log(obj.name); console.log(obj['name']); obj.say(); obj['say']();
對于已經(jīng)存在的屬性和方法,用.和用[]得到的結果一致、
對于不存在(未定義)的屬性和方法,用.會創(chuàng)建這個新的屬性或方法,而用[]的方式訪問不會創(chuàng)建新的屬性或方法
例如在用for-in遍歷對象時
for(var x in obj){ console.log(x); //輸出obj中的屬性名,方法名 console.log(obj.x);//想要用.的方法輸出對應的屬性和方法 結果是undefined,原因在于JS語言中.方法可以用來聲明,聲明對象屬性的方式就是屬性名.屬性值 //這里實際先聲明了obj的x屬性,并且未初始化該屬性,然后輸出了該屬性值,所以為undefined }
利用[]方式只能訪問和讀取,不會定義新的屬性
for(var x in obj){ console.log(x); //輸出obj中的屬性名,方法名 console.log(obj[x]);//輸出對應的屬性值和方法,方法未調(diào)用所以輸出的是方法的代碼 }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關文章:
1. ASP.NET MVC使用異步Action的方法2. IntelliJ IDEA創(chuàng)建web項目的方法3. Django實現(xiàn)jquery select2帶搜索的下拉框4. python 批量將中文名轉換為拼音5. node以及npm版本不對應出錯的完美解決方法6. JS apply用法總結和使用場景實例分析7. idea開啟代碼提示功能的方法步驟8. CSS3實例分享之多重背景的實現(xiàn)(Multiple backgrounds)9. docker /var/lib/docker/aufs/mnt 目錄清理方法10. ASP.NET MVC實現(xiàn)區(qū)域或城市選擇
