理解JavaScript中的對象
JavaScript中對象的簡介
我們知道生活中客觀存在的一切事物皆為對象,那在程序中的對象是什么樣子呢?我們可以將程序中的對象理解為客戶端世界中的對象在一種計(jì)算機(jī)中的一種表示方式.所有的編程語言中提到的對象其性質(zhì)都是類似的,它往往對應(yīng)內(nèi)存中的一塊區(qū)域,在這個(gè)區(qū)域中存儲(chǔ)對象的屬性或方法信息。
JavaScript中對象的創(chuàng)建
基于{}符號創(chuàng)建對象
在JS中我們可以直接基于{}定義對象,在對象內(nèi)容定義屬性和方法,例如:

在JS中我們可以將對象理解為用于封裝屬性和方法的一個(gè)結(jié)構(gòu)體,例如

如果需要反復(fù)創(chuàng)建多個(gè)相同結(jié)構(gòu)的對象時(shí),用{}代碼就很冗余——重復(fù)。也不便于維護(hù)!
基于構(gòu)造函數(shù)創(chuàng)建對象
假如在JS中我們希望非常方便的定義多個(gè)結(jié)構(gòu)相同,但屬性值不同的對象,可以直接基于構(gòu)造函數(shù)( 定義同一類型多個(gè)對象的相同屬性結(jié)構(gòu)的特殊函數(shù))進(jìn)行對象創(chuàng)建,例如:

建議:只要反復(fù)創(chuàng)建多個(gè)相同結(jié)構(gòu)的對象,都要用構(gòu)造函數(shù)來創(chuàng)建對象.
在實(shí)際應(yīng)用中我們盡量不要在構(gòu)造函數(shù)中再去定義函數(shù),例如:

這樣在構(gòu)建對象時(shí),可能每次都需要開辟額外的函數(shù)空間.
JavaScript中的對象特性
封裝特性
JS中的對象用于封裝屬性和方法.如圖所示:

繼承特性
JS中為了實(shí)現(xiàn)屬性或方法的可重用性,提供了一種繼承機(jī)制,
這種繼承的方式需要借助Prototype對象去實(shí)現(xiàn),Prototype對象是在定義構(gòu)造函數(shù)時(shí)自動(dòng)創(chuàng)建,用于存儲(chǔ)所有共有屬性和方法的一個(gè)對象,所有通過此構(gòu)造函數(shù)構(gòu)建的對象都繼承這個(gè)原型對象.
構(gòu)造函數(shù)中的原型對象分析,如圖所示:

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

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

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

原型鏈?zhǔn)怯啥嗉壐笇ο?原型對象)逐級繼承形成的鏈?zhǔn)浇Y(jié)構(gòu)。這個(gè)原型鏈保存著一個(gè)對象可以訪問的所有父級原型對象,以及這個(gè)對象可訪問到的所有屬性和方法。
多態(tài)特性
多態(tài)一般指同一個(gè)函數(shù)(行為),在不同情況下表現(xiàn)中的不同的狀態(tài)。從應(yīng)用上有兩種形式,分別為重載和重寫。
重載的定義:一個(gè)函數(shù),根據(jù)傳入的實(shí)參值不同,執(zhí)行不同的邏輯。
重寫的定義:在子對象中定義一個(gè)和父對象中成員同名的成員。只要從父對象繼承來的東西不好用,就用重寫自己的!
在子對象中定義一個(gè)和父對象中成員同名的自有成員,例如:

JavaScript內(nèi)置對象類型
對象類型簡介
JavaScript中對象的類型可以理解為構(gòu)造方法和原型對象的結(jié)合體,當(dāng)我們需要查看其對象類型時(shí),可以通過構(gòu)造方法名.
JS中內(nèi)置的對象類型
JS中有11種內(nèi)置對象類型,分別為String, Number, Boolean, Array, Date, RegExp, Math(對象), Error, Function, Object, global(對象)
總結(jié)(Summary)
本小節(jié)主要是對JS中對象做了簡介,并通過實(shí)踐方式分析JS中對象的創(chuàng)建,對象特性以及對象內(nèi)置類型。
以上就是理解JavaScript中的對象的詳細(xì)內(nèi)容,更多關(guān)于JavaScript 對象的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于Javascript 的 prototype問題。
關(guān)于Javascript 的 prototype問題。...2007-01-01
IE中鼠標(biāo)經(jīng)過option觸發(fā)mouseout的解決方法
這篇文章主要介紹了IE中鼠標(biāo)經(jīng)過option觸發(fā)mouseout的解決方法,分析了IE中鼠標(biāo)移到option時(shí)window.event.toElement返回值為null的原因及解決方法,需要的朋友可以參考下2015-01-01
在TypeScript中,泛型是一種創(chuàng)建可復(fù)用代碼組件的工具。這種組件不只能被一種類型使用,而是能被多種類型復(fù)用。類似于參數(shù)的作用,泛型是一種用以增強(qiáng)類(classes)、類型(types)和接口(interfaces)能力的非??煽康氖侄?/div> 2022-09-09
JavaScript實(shí)現(xiàn)文字跟隨鼠標(biāo)特效
這篇文章主要介紹了JavaScript如何實(shí)現(xiàn)文字跟隨鼠標(biāo)特效,d代碼簡單易操作,感興趣的朋友可以參考下2015-08-08
this和執(zhí)行上下文實(shí)現(xiàn)代碼
Javascript中this關(guān)鍵字通常指向當(dāng)前函數(shù)的擁有者。在javascript中通常把這個(gè)擁有者叫做執(zhí)行上下文。2010-07-07
JS遍歷數(shù)組及打印數(shù)組實(shí)例分析
這篇文章主要介紹了JS遍歷數(shù)組及打印數(shù)組的方法,結(jié)合實(shí)例形式分析JavaScript數(shù)組的遍歷與打印輸出相關(guān)技巧,需要的朋友可以參考下2016-01-01最新評論

