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