對象的情況和數組比較像,不同的是,他的鍵值類型是自定義的。也就是說,索引方式不局限于數字了,可使用另外一些更人性化的鍵值。如age等。
~~~
//對象文本標識法
var xiao={
name:'xiaoming',
age:12
};
~~~
變量名,括號,逗號分割,鍵值冒號分割。
下面的情況下,屬性名加括號:
1.屬性名是js保留字之一。
2.屬性名包含空格或其他特殊字符。
3.屬性名以數字開頭的話。
數組中的元素,與對象中的屬性,技術術語不同。
對象的屬性也可是一個函數,函數本身也是一種數據,這種情況下,我們稱該屬性為方法。
一般性數組:索引型數組,枚舉型數組,通常以數字為鍵值。
關聯型數組:哈希表。常以字符串為鍵值。
js中用數組 表示索引型數組,用對象表示關聯型數組。
*若要訪問的屬性是不確定的,必須用中括號表示法,他允許在運行時通過變量來實現相關屬性的
動態存取。*
**通過構造器函數創建對象**
好處在于:可以在創建對象時接收一些參數。
~~~
function Hero(){
this.name="daer";
}
var hero=new Hero();
hero.name;
//"daer"
~~~

構造器屬性,實際上是一個指向用于創建該對象的構造器函數的引用。
由于構造器屬性所引用的是一個函數,故可利用其創建一個其他對象。
如果對象是通過對象文本標識法創建的,那么實際上它是由內建構造器Object()函數所創建的。
**instanceof**
測試*一個對象是否由某個指定的構造器函數所創建*。
~~~
function Hero(){}
var h=new Hero();
var o={};
h instanceof Hero;
true
h instanceof Object;
true
o instanceof Object;
true
~~~
**傳遞對象**
當我們拷貝某個對象或者將它傳遞給某個函數時,往往傳遞的都是該對象的引用,因此在引用上所作的任何改動,實際上都會影響它所引用的原對象。