自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何理解JavaScript中的對(duì)象?

開發(fā) 前端
我們知道生活中客觀存在的一切事物皆為對(duì)象,那在程序中的對(duì)象是什么樣子呢?我們可以將程序中的對(duì)象理解為客戶端世界中的對(duì)象在一種計(jì)算機(jī)中的一種表示方式.所有的編程語言中提到的對(duì)象其性質(zhì)都是類似的,它往往對(duì)應(yīng)內(nèi)存中的一塊區(qū)域,在這個(gè)區(qū)域中存儲(chǔ)對(duì)象的屬性或方法信息。

 JavaScript中對(duì)象的簡(jiǎn)介

我們知道生活中客觀存在的一切事物皆為對(duì)象,那在程序中的對(duì)象是什么樣子呢?我們可以將程序中的對(duì)象理解為客戶端世界中的對(duì)象在一種計(jì)算機(jī)中的一種表示方式.所有的編程語言中提到的對(duì)象其性質(zhì)都是類似的,它往往對(duì)應(yīng)內(nèi)存中的一塊區(qū)域,在這個(gè)區(qū)域中存儲(chǔ)對(duì)象的屬性或方法信息。

[[338890]]

JavaScript中對(duì)象的創(chuàng)建

基于{}符號(hào)創(chuàng)建對(duì)象

在JS中我們可以直接基于{}定義對(duì)象,在對(duì)象內(nèi)容定義屬性和方法,例如:

 

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

 

如果需要反復(fù)創(chuàng)建多個(gè)相同結(jié)構(gòu)的對(duì)象時(shí),用{}代碼就很冗余——重復(fù)。也不便于維護(hù)!

基于構(gòu)造函數(shù)創(chuàng)建對(duì)象

假如在JS中我們希望非常方便的定義多個(gè)結(jié)構(gòu)相同,但屬性值不同的對(duì)象,可以直接基于構(gòu)造函數(shù)( 定義同一類型多個(gè)對(duì)象的相同屬性結(jié)構(gòu)的特殊函數(shù))進(jìn)行對(duì)象創(chuàng)建,例如:

 

建議:只要反復(fù)創(chuàng)建多個(gè)相同結(jié)構(gòu)的對(duì)象,都要用構(gòu)造函數(shù)來創(chuàng)建對(duì)象.

在實(shí)際應(yīng)用中我們盡量不要在構(gòu)造函數(shù)中再去定義函數(shù),例如:

 

這樣在構(gòu)建對(duì)象時(shí),可能每次都需要開辟額外的函數(shù)空間.

JavaScript中的對(duì)象特性

封裝特性

JS中的對(duì)象用于封裝屬性和方法.如圖所示:

 

繼承特性

JS中為了實(shí)現(xiàn)屬性或方法的可重用性,提供了一種繼承機(jī)制,

這種繼承的方式需要借助Prototype對(duì)象去實(shí)現(xiàn),Prototype對(duì)象是在定義構(gòu)造函數(shù)時(shí)自動(dòng)創(chuàng)建,用于存儲(chǔ)所有共有屬性和方法的一個(gè)對(duì)象,所有通過此構(gòu)造函數(shù)構(gòu)建的對(duì)象都繼承這個(gè)原型對(duì)象.

構(gòu)造函數(shù)中的原型對(duì)象分析,如圖所示:

 

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

 

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

 

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

 

基于JS原型對(duì)象同時(shí)添加多個(gè)共有方法,如圖所示:

 

原型鏈?zhǔn)怯啥嗉?jí)父對(duì)象(原型對(duì)象)逐級(jí)繼承形成的鏈?zhǔn)浇Y(jié)構(gòu)。這個(gè)原型鏈保存著一個(gè)對(duì)象可以訪問的所有父級(jí)原型對(duì)象,以及這個(gè)對(duì)象可訪問到的所有屬性和方法。

多態(tài)特性

多態(tài)一般指同一個(gè)函數(shù)(行為),在不同情況下表現(xiàn)中的不同的狀態(tài)。從應(yīng)用上有兩種形式,分別為重載和重寫。

重載的定義:一個(gè)函數(shù),根據(jù)傳入的實(shí)參值不同,執(zhí)行不同的邏輯。

重寫的定義:在子對(duì)象中定義一個(gè)和父對(duì)象中成員同名的成員。只要從父對(duì)象繼承來的東西不好用,就用重寫自己的!

在子對(duì)象中定義一個(gè)和父對(duì)象中成員同名的自有成員,例如:

 

JavaScript內(nèi)置對(duì)象類型

對(duì)象類型簡(jiǎn)介

JavaScript中對(duì)象的類型可以理解為構(gòu)造方法和原型對(duì)象的結(jié)合體,當(dāng)我們需要查看其對(duì)象類型時(shí),可以通過構(gòu)造方法名.

JS中內(nèi)置的對(duì)象類型

JS中有11種內(nèi)置對(duì)象類型,分別為String, Number, Boolean, Array, Date, RegExp, Math(對(duì)象), Error, Function, Object, global(對(duì)象)

總結(jié)(Summary)

本小節(jié)主要是對(duì)JS中對(duì)象做了簡(jiǎn)介,并通過實(shí)踐方式分析JS中對(duì)象的創(chuàng)建,對(duì)象特性以及對(duì)象內(nèi)置類型。

 

責(zé)任編輯:華軒 來源: SegmentFault
相關(guān)推薦

2021-06-03 10:00:47

JavaScript 前端數(shù)克隆對(duì)象

2012-12-25 09:38:41

JavaScript設(shè)計(jì)模式

2017-07-26 17:10:24

前端JavascriptThis

2021-10-21 18:47:37

JavaScript面向對(duì)象

2021-03-26 23:41:19

JavaScript對(duì)象開發(fā)

2024-07-18 10:12:04

2022-08-16 09:03:01

JavaScript前端

2023-04-26 15:19:36

JavaScripMap數(shù)組

2012-07-25 13:25:11

ibmdw

2025-01-09 09:14:44

2020-12-16 09:47:01

JavaScript箭頭函數(shù)開發(fā)

2011-03-22 09:49:15

JavaScript

2021-01-06 08:03:00

JavaScript數(shù)據(jù)結(jié)構(gòu)

2020-08-19 08:29:22

JavaScript 對(duì)象函數(shù)

2015-07-06 09:59:56

JavaScript私有成員

2015-09-14 15:23:44

JavaScriptfunction

2024-04-11 08:30:05

JavaScript數(shù)組函數(shù)

2020-11-26 08:12:24

JavaScript對(duì)象數(shù)組

2023-10-25 13:42:19

Java面向?qū)ο?/a>

2009-06-24 15:28:19

arguments對(duì)象JavaScript函
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)