更新時(shí)間:2022-12-06 來源:黑馬程序員 瀏覽量:
生活中,對(duì)象是一個(gè)具體的事物,比如:你的電腦、你的手機(jī)、古力娜扎、周杰倫(周董)等都是對(duì)象。 但在程序員的認(rèn)知中萬物皆對(duì)象。 這些具體的事物,都有自己的特征和行為:
特征:
你的電腦:尺寸、重量、價(jià)格等 你的手機(jī):品牌、屏幕大小、顏色等 古力娜扎:年齡、身高、三圍等
行為:
你的電腦:瀏覽網(wǎng)頁、寫代碼等 你的手機(jī):播放視頻、吃雞等 古力娜扎:演電影、配音等
TypeScript 中的對(duì)象,是對(duì)生活中具體事物的抽象,使得我們可以通過代碼來描述具體的事物。 TS 中的對(duì)象,也是由特征和行為組成的,它們有各自專業(yè)的名稱:屬性(特征)和方法(行為)。TS 中的對(duì)象是一組相關(guān)屬性和方法的集合,并且是無序的。
// 演示對(duì)象: { name: '周杰倫', gender: '男', height: 175, sing: funtion () { console.log('故事的小黃花 從出生那年就飄著') } }為什么要有對(duì)象?我們將這個(gè)問題帶入到
方案一:使用多個(gè)變量
let name: string = '周杰倫' let gender: string = '男' let height: number = 175 function sing() { ... }
但上述代碼中有明顯的缺點(diǎn):一個(gè)變量只能存儲(chǔ)一個(gè)數(shù)據(jù),多個(gè)變量之間沒有任何關(guān)聯(lián)(相關(guān)性)。
方案二:使用數(shù)組,一次可以存儲(chǔ)多個(gè)數(shù)據(jù)
['周杰倫', '男', 175, function sing() { ... }]
缺點(diǎn):不知道數(shù)組中的每個(gè)元素表示什么。
使用對(duì)象,就可以清晰描述對(duì)象事物間的相互關(guān)系(一組相關(guān)數(shù)據(jù)時(shí)),結(jié)構(gòu)更加清晰、明了。
{ name: '周杰倫', gender: '男', height: 175, sing: function () { ... }}
在 TS 中,如果要描述一個(gè)事物或一組相關(guān)數(shù)據(jù),就可以使用對(duì)象來實(shí)現(xiàn)。
創(chuàng)建對(duì)象的語法格式如下:
let person = {}
此處的 {}(花括號(hào)、大括號(hào))表示對(duì)象。而對(duì)象中沒有屬性或方法時(shí),稱為:空對(duì)象。 對(duì)象中的屬性或方法,采用鍵值對(duì)的形式,鍵、值之間使用冒號(hào)(:)來配對(duì),如下示例。
鍵(key)名稱 ,值(value)具體的數(shù)據(jù)。 多個(gè)鍵值對(duì)之間,通過逗號(hào)(,)來分隔(類比數(shù)組)。
現(xiàn)在對(duì)象person有兩個(gè)屬性:
let person = { name: '劉老師', age: 18 }
屬性和方法的區(qū)別:值是不是函數(shù),如果是,就稱為方法;否則,就是普通屬性。
let person= { sayHi: function () { console.log('大家好,我是一個(gè)方法') } }
注意:函數(shù)用作方法時(shí)可以省略function后面的函數(shù)名稱,也叫做匿名函數(shù)。
函數(shù)沒有名稱,如何調(diào)用? 此處的sayHi相當(dāng)于函數(shù)名稱,將來通過對(duì)象的sayHi就可以調(diào)用了。 如果一個(gè)函數(shù)是單獨(dú)出現(xiàn)的,沒有與對(duì)象關(guān)聯(lián),我們稱為函數(shù);否則,稱為方法。