詳解js訪問(wèn)對(duì)象的屬性和方法
對(duì)象的屬性和方法統(tǒng)稱(chēng)為對(duì)象的成員。
訪問(wèn)對(duì)象的屬性
在JavaScript中,可以使用“ . ”和“ [ ] ”來(lái)訪問(wèn)對(duì)象的屬性。
二者區(qū)別:“ . ”表示法一般作為靜態(tài)對(duì)象使用時(shí)來(lái)存取屬性。而“[ ]”表示法在動(dòng)態(tài)存取屬性時(shí)就非常有用。
var object = {name:'xiaoming',age:29}; var name1 = object.name;var name2 = object['name'];
訪問(wèn)對(duì)象的方法
在JavaScript中,只能用“ . ”來(lái)訪問(wèn)對(duì)象的方法。
function Person(){ this.name = 'xiaoming'; this.age = 29; this.say = function(){ alert('This is person'); } } var student = new Person(); alert(student.name); alert(student['age']); student.say(); //使用" . "訪問(wèn)對(duì)象方法
引申出的兩個(gè)題目:
1.判斷一個(gè)字符串中出現(xiàn)次數(shù)最多的字符,統(tǒng)計(jì)這個(gè)次數(shù)
var str = 'Thisthebesttimesewerty'; var obj = {}; for(var i=0; i<str.length;i++){ var char = str[i]; // var char = str.charAt(i); //charAt()可返回指定位置的字符,i為字符的下標(biāo),從0開(kāi)始 if(obj[char]){ obj[char]++; //char是obj對(duì)象的一個(gè)屬性,如果存在次數(shù)加1 }else{ obj[char] = 1; //如果不存在,保存在obj中并計(jì)數(shù)為1 } } var max = 0; var maxChar = null; for(var key in obj){ if(max < obj[key]){ max = obj[key]; //出現(xiàn)最多次數(shù)max maxChar = key; //出現(xiàn)次數(shù)最多的字符maxChar } }
2.編寫(xiě)arraysSimilar函數(shù),實(shí)現(xiàn)判斷傳入的兩個(gè)數(shù)組是否相似。
具體需求:
1. 數(shù)組中的成員類(lèi)型相同,順序可以不同。例如[1, true] 與 [false, 2]是相似的。
2. 數(shù)組的長(zhǎng)度一致。
3. 類(lèi)型的判斷范圍,需要區(qū)分:String, Boolean, Number, undefined, null, 函數(shù),日期, window.
當(dāng)以上全部滿足,則返回"判定結(jié)果:通過(guò)",否則返回"判定結(jié)果:不通過(guò)"。
function arraysSimilar(arr1,arr2){ if(!(arr1 instanceof Array) || !(arr2 instanceof Array)){ return false; } if(arr1.length !== arr2.length){ return false; } var i=0, n=arr1.length, countMap1={}, countMap2 = {}, t1, t2, TYPES = ['string','boolean','number','undefined','null','function','date','window']; for(i; i<n; i++){ t1 = typeOf(arr1[i]); t2 = typeOf(arr2[i]); if(countMap1[t1]){ countMap1[t1]++; } else{ countMap1[t1] = 1; } if(countMap2[t2]){ countMap2[t2]++; } else{ countMap2[t2] = 1; } } for(i=0; i<TYPES.length; i++){ if(countMap1[TYPES[i]] != countMap2[TYPES[i]]){ return false; } } return true; } function typeOf(ele){ var r; if(ele === null){ r = 'null'; } else if(ele === 'window'){ r = 'window'; } else if(ele instanceof Array){ r = 'array'; } else if(ele instanceof Date){ r = 'date'; } else{ r = typeof(ele); } return r; }
- 在JavaScript中如何訪問(wèn)暫未存在的嵌套對(duì)象
- JS實(shí)現(xiàn)訪問(wèn)DOM對(duì)象指定節(jié)點(diǎn)的方法示例
- js return返回多個(gè)值,通過(guò)對(duì)象的屬性訪問(wèn)方法
- js中通過(guò)getElementsByName訪問(wèn)name集合對(duì)象的方法
- JavaScript中子對(duì)象訪問(wèn)父對(duì)象的方式詳解
- 淺析JavaScript訪問(wèn)對(duì)象屬性和方法及區(qū)別
- js 利用image對(duì)象實(shí)現(xiàn)圖片的預(yù)加載提高訪問(wèn)速度
- JS訪問(wèn)對(duì)象兩種方式區(qū)別解析
相關(guān)文章
JS右下角廣告窗口代碼(可收縮、展開(kāi)及關(guān)閉)
這篇文章主要介紹了JS右下角廣告窗口代碼,具有浮動(dòng)顯示、可收縮、展開(kāi)及關(guān)閉等功能,涉及javascript針對(duì)頁(yè)面元素屬性操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09python實(shí)現(xiàn)迭代法求方程組的根過(guò)程解析
這篇文章主要介紹了python實(shí)現(xiàn)迭代法求方程組的根過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11原生JS實(shí)現(xiàn)網(wǎng)絡(luò)彩票投注效果
分享一個(gè)最近模仿市面彩票系統(tǒng)寫(xiě)個(gè)小案例,沒(méi)有使用任何后臺(tái),從投注到開(kāi)獎(jiǎng)再到返獎(jiǎng)都是用原生JS實(shí)現(xiàn)的。2016-09-09