詳解js訪問對象的屬性和方法
對象的屬性和方法統(tǒng)稱為對象的成員。
訪問對象的屬性
在JavaScript中,可以使用“ . ”和“ [ ] ”來訪問對象的屬性。
二者區(qū)別:“ . ”表示法一般作為靜態(tài)對象使用時來存取屬性。而“[ ]”表示法在動態(tài)存取屬性時就非常有用。
var object = {name:'xiaoming',age:29};
var name1 = object.name;var name2 = object['name'];
訪問對象的方法
在JavaScript中,只能用“ . ”來訪問對象的方法。
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(); //使用" . "訪問對象方法
引申出的兩個題目:
1.判斷一個字符串中出現(xiàn)次數(shù)最多的字符,統(tǒng)計這個次數(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開始
if(obj[char]){
obj[char]++; //char是obj對象的一個屬性,如果存在次數(shù)加1
}else{
obj[char] = 1; //如果不存在,保存在obj中并計數(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.編寫arraysSimilar函數(shù),實現(xiàn)判斷傳入的兩個數(shù)組是否相似。
具體需求:
1. 數(shù)組中的成員類型相同,順序可以不同。例如[1, true] 與 [false, 2]是相似的。
2. 數(shù)組的長度一致。
3. 類型的判斷范圍,需要區(qū)分:String, Boolean, Number, undefined, null, 函數(shù),日期, window.
當(dāng)以上全部滿足,則返回"判定結(jié)果:通過",否則返回"判定結(jié)果:不通過"。
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;
}
相關(guān)文章
漂亮的widgets,支持換膚和后期開發(fā)新皮膚(2007-4-27已更新1.7alpha)
漂亮的widgets,支持換膚和后期開發(fā)新皮膚(2007-4-27已更新1.7alpha)...2007-04-04
javascript獲取wx.config內(nèi)部字段解決微信分享
這篇文章主要介紹了javascript獲取wx.config內(nèi)部字段解決微信分享,需要的朋友可以參考下2016-03-03
JS對img標(biāo)簽進(jìn)行優(yōu)化使用onerror顯示默認(rèn)圖像
這篇文章主要介紹了JS對img標(biāo)簽進(jìn)行優(yōu)化使用onerror顯示默認(rèn)圖像,需要的朋友可以參考下2014-04-04
JS函數(shù)多個參數(shù)默認(rèn)值指定方法分析
這篇文章主要介紹了JS函數(shù)多個參數(shù)默認(rèn)值指定方法,結(jié)合實例形式分析了javascript函數(shù)參數(shù)的定義與傳遞相關(guān)操作技巧,需要的朋友可以參考下2016-11-11

