1、概述
對象的屬性和方法統稱為對象的成員。
JS 調用屬性一般有兩種方法——點和中括號的方法。
標準格式是對象.屬性(不帶雙引號),注意一點的是:js對象的屬性,key標準是不用加引號的,加也可以js只能是數字,特別的情況必須加,如果key數字啊,表達式啊等等。
加引號是為了將其視為整體,認識一點:從對象角度,屬性是不加引號的,如name,"name"這是啥,屬性不可能是“name”,所以即使加了雙引號,對象調用時還是要去掉引號的
2、相同點和區別2.1訪問對象的屬性
相同點:在中,可以使用“ . ”和“ [ ] ”來訪問對象的屬性。
二者區別:“ . ”表示法一般作為靜態對象使用時來存取屬性。而“[ ]”表示法在動態存取屬性時就非常有用。
點方法是在對象名后面跟上屬性名,而中括號方法里的索引存放的與屬性名字相同的---字符串 。
中括號方法里面的屬性名可以是數字js只能是數字,而點方法后面的屬性名不可以是數字
當動態為對象添加屬性時,必須使用中括號[],不可用點方法.
點方法后面跟的必須是一個指定的屬性名稱,而中括號方法里面可以是變量。
var object = {name:'xiaoming',age:29};
var name1 = object.name;
var name2 = object['name'];
2.2訪問對象的方法
在中,只能用“ . ”來訪問對象的方法。
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(); //使用" . "訪問對象方法
3、引申出的兩個題目:3.1.判斷一個字符串中出現次數最多的字符,統計這個次數
var str = 'Thisthebesttimesewerty';
var obj = {};
for(var i=0; i
}
var max = 0;
var maxChar = null;
for(var key in obj){
if(max < obj[key]){
max = obj[key]; //出現最多次數max
maxChar = key; //出現次數最多的字符maxChar
}
}
3.2.編寫函數,實現判斷傳入的兩個數組是否相似。
具體需求:
\1. 數組中的成員類型相同,順序可以不同。例如[1, true] 與 [false, 2]是相似的。
\2. 數組的長度一致。
\3. 類型的判斷范圍,需要區分:, , , , null, 函數,日期, .
當以上全部滿足,則返回"判定結果:通過",否則返回"判定結果:不通過"。
?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
} else{
countMap2[t2] = 1;
}
}
for(i=0; i
r = 'window';
}
else if(ele instanceof Array){
r = 'array';
}
else if(ele instanceof Date){
r = 'date';
}
else{
r = typeof(ele);
}
return r;
}
4、總結
相同點:都是用于屬性
區別:[]動態屬性,不能適用于方法調用;.靜態屬性,可以用于方法調用
5、引用
1、詳解js訪問對象的屬性和方法:
2、js對象中屬性調用.和[] 兩種方式的區別: