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)存在的屬性和方法,用.和用[]得到的結(jié)果一致、
對于不存在(未定義)的屬性和方法,用.會創(chuàng)建這個(gè)新的屬性或方法,而用[]的方式訪問不會創(chuàng)建新的屬性或方法
例如在用for-in遍歷對象時(shí)
for(var x in obj){ console.log(x); //輸出obj中的屬性名,方法名 console.log(obj.x);//想要用.的方法輸出對應(yīng)的屬性和方法 結(jié)果是undefined,原因在于JS語言中.方法可以用來聲明,聲明對象屬性的方式就是屬性名.屬性值 //這里實(shí)際先聲明了obj的x屬性,并且未初始化該屬性,然后輸出了該屬性值,所以為undefined }
利用[]方式只能訪問和讀取,不會定義新的屬性
for(var x in obj){ console.log(x); //輸出obj中的屬性名,方法名 console.log(obj[x]);//輸出對應(yīng)的屬性值和方法,方法未調(diào)用所以輸出的是方法的代碼 }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Openlayers實(shí)現(xiàn)地圖的基本操作
這篇文章主要為大家詳細(xì)介紹了Openlayers實(shí)現(xiàn)地圖的基本操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09微信小程序?qū)W習(xí)筆記之登錄API與獲取用戶信息操作圖文詳解
這篇文章主要介紹了微信小程序?qū)W習(xí)筆記之登錄API與獲取用戶信息操作,結(jié)合實(shí)例形式分析了微信小程序登陸請求及后臺交互相關(guān)操作技巧,并結(jié)合圖文形式進(jìn)行說明,需要的朋友可以參考下2019-03-03JS去掉字符串前后空格、阻止表單提交的實(shí)現(xiàn)代碼
這篇文章主要介紹了JS去掉字符串前后空格、阻止表單提交的實(shí)現(xiàn)代碼,代碼簡單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06詳解用webpack把我們的業(yè)務(wù)模塊分開打包的方法
本篇文章主要介紹了用webpack把我們的業(yè)務(wù)模塊分開打包的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07淺析JavaScript定時(shí)器setTimeout的時(shí)延問題
這篇文章主要為大家詳細(xì)介紹了JavaScript中定時(shí)器setTimeout有最小時(shí)延的相關(guān)知識,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11

Gulp實(shí)現(xiàn)靜態(tài)網(wǎng)頁模塊化的方法詳解

array.prototype.silce.call 理解分析

詳解bootstrap的modal-remote兩種加載方式【強(qiáng)化】