如何理解javaScript中的對象

JavaScript中對象的簡介

咱們知道生活中客觀存在的一切事物皆爲對象,那在程序中的對象是什麼樣子呢?咱們能夠將程序中的對象理解爲客戶端世界中的對象在一種計算機中的一種表示方式.全部的編程語言中提到的對象其性質都是相似的,它每每對應內存中的一塊區域,在這個區域中存儲對象的屬性或方法信息。javascript

JavaScript中對象的建立

基於{}符號建立對象

在JS中咱們能夠直接基於{}定義對象,在對象內容定義屬性和方法,例如:
image
在JS中咱們能夠將對象理解爲用於封裝屬性和方法的一個結構體,例如
image前端

若是須要反覆建立多個相同結構的對象時,用{}代碼就很冗餘——重複。也不便於維護!

基於構造函數建立對象

假如在JS中咱們但願很是方便的定義多個結構相同,但屬性值不一樣的對象,能夠直接基於構造函數( 定義同一類型多個對象的相同屬性結構的特殊函數)進行對象建立,例如:
imagejava

建議:只要反覆建立多個相同結構的對象,都要用構造函數來建立對象.

在實際應用中咱們儘可能不要在構造函數中再去定義函數,例如:編程

image

假如構造函數中再定義函數,會在構建對象時,爲構造函數內部的函數開闢額外的函數空間。

JavaScript中的對象特性

封裝特性

JS中的對象用於封裝屬性和方法.如圖所示:
imagesegmentfault

繼承特性

JS中爲了實現屬性或方法的可重用性,提供了一種繼承機制,這種繼承的方式須要藉助Prototype對象去實現。Prototype對象是在定義構造函數時自動建立,用於存儲全部共有屬性和方法的一個對象,全部經過此構造函數構建的對象都繼承這個原型對象.
構造函數中的原型對象分析,如圖所示:編程語言

image

原型對象(ProtoType)對象的繼承,如圖所示:
image函數

在對象中添加共有屬性,如圖所示:spa

image

在對象中添加共有方法的.如圖所示:
image3d

基於JS原型對象同時添加多個共有方法,如圖所示:
image對象

原型鏈是由多級父對象(原型對象)逐級繼承造成的鏈式結構。這個原型鏈保存着一個對象能夠訪問的全部父級原型對象,以及這個對象可訪問到的全部屬性和方法。

JS中咱們定義的全部構造函數,默認只想的原型對象爲Object類型中的原型對象,如圖所示:

image.png

多態特性

多態通常指同一個函數(行爲),在不一樣狀況下表現出的不一樣的狀態。從應用上有兩種形式,分別爲重載和重寫。
重載的定義:一個函數,根據傳入的實參值不一樣,執行不一樣的邏輯。
重寫的定義:在子對象中定義一個和父對象中成員同名的成員。只要從父對象繼承來的東西很差用,就用重寫本身的!

在子對象中定義一個和父對象中成員同名的自有成員,例如:
image

JavaScript內置對象類型

對象類型簡介

JavaScript中對象的類型能夠理解爲構造方法和原型對象的結合體,當咱們須要查看其對象類型時,能夠經過構造方法名.

JS中內置的對象類型

JS中有11種內置對象類型,分別爲String, Number, Boolean, Array, Date, RegExp, Math(對象), Error, Function, Object, global(對象)

總結(Summary)

本小節主要是對JS中對象作了簡介,並經過實踐方式分析JS中對象的建立,對象特性以及對象內置類型。

javascript前端

相關文章
相關標籤/搜索