JS訪問(wèn)對(duì)象兩種方式區(qū)別解析
可以使用下面兩種方式訪問(wèn)對(duì)象的屬性和方法
1.對(duì)象名.屬性名對(duì)象名.方法名()
2.對(duì)象名['屬性名'] 對(duì)象名'方法名'
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']();
對(duì)于已經(jīng)存在的屬性和方法,用.和用[]得到的結(jié)果一致、
對(duì)于不存在(未定義)的屬性和方法,用.會(huì)創(chuàng)建這個(gè)新的屬性或方法,而用[]的方式訪問(wèn)不會(huì)創(chuàng)建新的屬性或方法
例如在用for-in遍歷對(duì)象時(shí)
for(var x in obj){ console.log(x); //輸出obj中的屬性名,方法名 console.log(obj.x);//想要用.的方法輸出對(duì)應(yīng)的屬性和方法 結(jié)果是undefined,原因在于JS語(yǔ)言中.方法可以用來(lái)聲明,聲明對(duì)象屬性的方式就是屬性名.屬性值 //這里實(shí)際先聲明了obj的x屬性,并且未初始化該屬性,然后輸出了該屬性值,所以為undefined }
利用[]方式只能訪問(wèn)和讀取,不會(huì)定義新的屬性
for(var x in obj){ console.log(x); //輸出obj中的屬性名,方法名 console.log(obj[x]);//輸出對(duì)應(yīng)的屬性值和方法,方法未調(diào)用所以輸出的是方法的代碼 }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Android打包篇:Android Studio將代碼打包成jar包教程2. Python使用urlretrieve實(shí)現(xiàn)直接遠(yuǎn)程下載圖片的示例代碼3. 完美解決vue 中多個(gè)echarts圖表自適應(yīng)的問(wèn)題4. SpringBoot+TestNG單元測(cè)試的實(shí)現(xiàn)5. vue實(shí)現(xiàn)web在線聊天功能6. 解決Android Studio 格式化 Format代碼快捷鍵問(wèn)題7. 基于vue 動(dòng)態(tài)菜單 刷新空白問(wèn)題的解決8. JavaEE SpringMyBatis是什么? 它和Hibernate的區(qū)別及如何配置MyBatis9. Java使用Tesseract-Ocr識(shí)別數(shù)字10. Springboot 全局日期格式化處理的實(shí)現(xiàn)
