javascript的三種物件類型:1、內部對象,包括需要實例化才能使用的本地對象和不需要實例化就能使用的內建對象;2、宿主對象,就是執行JS腳本的環境提供的對象;3、自訂對象,就是開發者自己定義的對象。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
javascript中的物件可以分為三大類,分別是內部物件(本地物件和內建物件)、宿主物件和自訂物件。
1、內部物件
1)、本機對象,ECMAScript提供的需要實例化(new)才能使用的物件:
##2)、內建物件#2)、內建物件# ,ECMAScript提供的不需要實例化就能使用的物件:只有Global (全域物件)和MathObject、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError
Math 物件屬性
描述 | |
---|---|
返回算術常數e,即自然對數的底數(約等於2.718) 。 | |
傳回 2 的自然對數(約等於0.693)。 | |
傳回 10 的自然對數(約等於2.302)。 | |
傳回以 2 為底的 e 的對數(約等於 1.4426950408889634)。 | |
傳回以 10 為底的 e 的對數(約等於0.434)。 | |
傳回圓周率(約等於3.14159)。 | |
傳回 2 的平方根的倒數(約等於 0.707)。 | |
傳回 2 的平方根(約等於 1.414)。 |
Math 物件方法
描述 | |
---|---|
傳回x 的絕對值。 | |
傳回 x 的反餘弦值。 | |
傳回 x 的反正弦值。 | |
以介於 -PI/2 與 PI/2 弧度之間的數值來傳回 x 的反正切值。 | |
傳回從x 軸到點(x,y) 的角度(介於-PI/2 與PI/2 弧度之間)。 | |
對數進行上捨入。 | |
傳回數的餘弦。 | |
傳回 Ex 的指數。 | |
對 x 進行下捨入。 | |
傳回數的自然對數(底為e)。 | |
傳回 x,y,z,...,n 中的最高值。 | |
傳回 x,y,z,...,n中的最低值。 | |
傳回 x 的 y 次方。 | |
傳回 0 ~ 1 之間的隨機數。 | |
四捨五入。 | |
傳回數的正弦。 | |
傳回數的平方根。 | |
傳回角的正切。 |
JavaScript 全域屬性
描述 | |
---|---|
代表正的無窮大的數值。 | |
指示某個值是不是數字值。 | |
指示未定義的值。 |
函數 | |
---|---|
#decodeURI() | 解碼某個編碼的URI。 |
decodeURIComponent() | 解碼一個編碼的 URI 元件。 |
encodeURI() | 把字串編碼為 URI。 |
encodeURIComponent() | 把字串編碼為 URI 元件。 |
escape() | 對字串進行編碼。 |
eval() | 計算 JavaScript 字串,並將它當作腳本程式碼來執行。 |
isFinite() | 檢查某個值是否為有窮大的數。 |
isNaN() | 檢查某個值是否是數字。 |
Number() | 把物件的值轉換成數字。 |
parseFloat() | 解析一個字串並傳回一個浮點數。 |
parseInt() | 解析一個字串並傳回一個整數。 |
String() | 把物件的值轉換成字串。 |
unescape() | 對由 escape() 編碼的字串進行解碼。 |
2、宿主物件
#宿主物件就是執行JS腳本的環境所提供的對象,是瀏覽器提供的對象。所有的BOM和DOM都是宿主物件。
3、自訂物件
#開發人員自己定義的物件
⑴物件字面量方式(透過JSON來建立對象)
缺點:使用同一個介面建立很多對象,會產生大量的重複程式碼。
⑵工廠模式。
①工廠模式就是將創建對象的語句放在一個函數裡,透過傳入參數來建立特定對象,最後返回創建的對象。
函數createPerson()能夠根據接受到的參數來建構一個包含所有必要資訊的Person物件。
可以無數次的呼叫這個函數,而每次它都會回傳一個包含2個屬性和一個方法的物件。
②缺點:工廠模式雖然可以創建多個相似的對象,但卻無法解決對象標識的問題,即如何知道一個對象的類型。
⑶建構函式模式
①缺點:使用建構子的主要問題是:每個方法都要在每個實例上建立一遍。
②在ECMAScript中,函數即對象,因此每定義一個函數,也就是實例化了一個物件。
③也就是說透過建構函式實例化的多個物件的方法,是多個不同的方法,但它們內部的程式碼以及實現的功能是相同的,這就造成了一定的資源浪費。
⑷原型模式
①js中,每個函數都有一個prototype屬性,它是一個指針,指向一個對象,叫做原型對象。
②使用原型模式可以讓所有的實例共享原型物件中的屬性和方法,也就是說,不必再建構函式中定義物件實例的資訊。
③缺點:省略了為建構函式傳遞初始化參數這一環節,結果所有實例在預設情況下都會取得相同的屬性值。
原型模式的最大問題是由共享的本質所導致的。原型中所有屬性是被很多實例共享的
這種共享對於函數非常合適。對於包含引用類型的屬性來說,問題就比較突出了。
④因此,很少單獨使用原型模式。
⑸組合使用建構函式模式和原型模式
①組合使用建構函式模式和原型模式,是建立自訂類型最常見的方式。
②建構子模式用於定義實例屬性,而原型模式用於定義方法和共享的屬性。
③結果,每個實例都會有自己的一份實例屬性的副本,但同時又共享著對方法的引用,最大限度的節省了記憶體。
⑹其他模式
①動態原型模式:僅在第一次呼叫建構函式時,將方法賦給原型物件的對應屬性,其他範例的處理方式同建構子模式
②寄生建構函式模式:僅封裝建立物件的程式碼,然後再返回新建立的對象,仍使用new運算元呼叫
③穩妥建構子模式:沒有公用屬性,只有私有變數和方法,以及一些get/set方法,用來處理私有變數。
【相關推薦:javascript學習教學】
#以上是javascript物件類型分哪三種的詳細內容。更多資訊請關注PHP中文網其他相關文章!