首頁技術(shù)文章正文

TypeScript為什么要有對(duì)象?怎樣創(chuàng)建對(duì)象

更新時(shí)間:2022-12-06 來源:黑馬程序員 瀏覽量:

什么是TypeScript的對(duì)象?

生活中,對(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ì)象

創(chuàng)建對(duì)象的語法格式如下:

let person = {}

此處的 {}(花括號(hào)、大括號(hào))表示對(duì)象。而對(duì)象中沒有屬性或方法時(shí),稱為:空對(duì)象。 對(duì)象中的屬性或方法,采用鍵值對(duì)的形式,鍵、值之間使用冒號(hào)(:)來配對(duì),如下示例。

TS創(chuàng)建對(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ù);否則,稱為方法。


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!