對象基礎介紹:java
一、對象是JavaScript的基本數據類型。在java中Object是全部對象的基類,在JavaScript中一樣,Object是全部對象的基類,那麼Object自身屬性和方法在全部對象中都會體現,只是不一樣的類對方法有不一樣的重寫。正則表達式
二、JavaScript對象是動態的—能夠新增屬性也能夠刪除屬性—但它們經常使用來模擬靜態對象以及靜態類型語言中的「結構體」(struct)。有時它們也用作字符串的集合(忽略名/值對中的值)。 數組
三、除字符串、數字、true. false. null和undefined以外,JavaScript中的值都是對象。 儘管字符串、數字和布爾值不是對象,但它們的行和不可變對象很是相似。 瀏覽器
四、對象是可變的,咱們經過引用而非值來操做對象。若是變量x是指向一個對象的引用,那麼執行代碼yar y二x;變量y也是指向同一個對象的引用,而非這個對象的副本。經過變量y修改這個對象亦會對變量x形成影響。對象最多見的用法是:函數
建立(create )、設置(set)、查找(query )、刪除(delete )、檢測(test)和枚舉(enumerate)它的屬性。spa
對象的屬性:prototype
一、屬性包括名字和值。屬性名能夠是包含空字符串在內的任意字符串,但對象中不能存在兩個同名的屬性。值能夠是任意JavaScript值,或者(在ECMAScript 5中)能夠是一個getter或setter函數(或二者都有)。除了名字和值以外,每一個屬性還有一些與之相關的值,稱爲「屬性特性」(property attribute):對象
可寫(veritable attribute),代表是否能夠設置該屬性的值。繼承
可枚舉(enumerable attribute ),代表是否能夠經過for/in循環返回該屬性。ip
可配置(configurable attribute),代表是否能夠刪除或修改該屬性。
在ECMAScript 5以前,經過代碼給對象建立的全部屬性都是可寫的、可枚舉的和可配置的。在ECMAScript 5中則能夠對這些特性加以配置
除了包含屬性以外,每一個對象還擁有三個相關的對象特性(object attribute):
對象的原型 (prototype)指向另一個對象,本對象的屬性繼承自它的原型對象。
對象的類( class )是一個標識對象類型的字符串。
對象的擴展標記 (extensible flag)指明瞭(在ECMAScript 5中)是否能夠向該對象添加新屬性。
二、用下面這些術語來對三類JavaScript對象和兩類屬性做區分:
內置對象(native object)是由ECMAScript規範定義的對象或類。例如,數組、函數、日期和正則表達式都是內置對象。
宿主對象(host object)是由JavaScript解釋器所嵌入的宿主環境(好比Web瀏覽器)定義的一。客戶端JavaScript中表示網頁結構的HTMLEIement對象均是宿主對象。既然宿主環境定義的方法能夠當成普通的JavaScript函數對象,那麼宿主對象也能夠當成內置對象。
自定義對象(user-defined object)是由運行中的JavaScript代碼建立的對象。
自有屬性(own property)是直接在對象中定義的屬性。
繼承屬性(inherited property)是在對象的原型對象中定義的屬性。