JavaScript在面向?qū)ο笾械膭?chuàng)建對象的3種方法
JavaScript是一種功能強大的編程語言,支持面向?qū)ο缶幊?OOP)。實際上,在JavaScript中,對象*** - 從核心功能(如字符串和數(shù)組)到使用該語言構(gòu)建的瀏覽器API。
Bautista是一位美國網(wǎng)絡開發(fā)人員,熱衷于教授人們編程,他強調(diào)“要將你的JavaScript技能提升到一個新的水平,你需要理解語言的基于對象的本質(zhì)。"
以下是在面向?qū)ο蟮腏avaScript(OOJS)編程中創(chuàng)建對象的三種方法:
使用對象文字
在OOP中,對象文字是指用大括號括起來的用逗號分隔的名稱 - 值對列表。名稱是字符串,值是可用的任何基本數(shù)據(jù)類型,例如數(shù)組,字符串,數(shù)字,函數(shù)等等。
通常,對象文字用于封裝代碼并將其包裝在有序的包中。這樣,它們可以防止與全局范圍內(nèi)的變量和對象發(fā)生沖突。使用對象文字,您可以一起收集屬性和方法,并使您的代碼干凈整潔。
JavaScript對象文字是單例,它們允許您方便靈活地創(chuàng)建對象。它們可以避免編寫過多代碼。例如,您可以將對象文字放置在工作區(qū)中的任何位置,而不包括任何先前的設置,并且它仍然可以正常工作 - 這可能非常有用!
雖然對象文字很重要,但它們不支持實例化或繼承。如果要使用這些功能,則需要使用其他技術來創(chuàng)建對象。
使用對象構(gòu)造函數(shù)
構(gòu)造函數(shù)是創(chuàng)建JavaScript對象的最常規(guī)技術,它依賴于原型繼承來利用彼此的功能。這些函數(shù)的一個關鍵特性是它們可以實例化和繼承。
構(gòu)造函數(shù)的創(chuàng)建就像常規(guī)函數(shù)一樣。但是,區(qū)別在于this關鍵字用于聲明屬性和方法。通常,new將新創(chuàng)建的對象綁定到被調(diào)用構(gòu)造函數(shù)中的this運算符。當調(diào)用類似于watch的函數(shù)時,瀏覽器將向上移動對象鏈及其各自的原型屬性,直到它檢索其值。
使用原型繼承
也可以使用原型繼承的概念創(chuàng)建JavaScript對象。大多數(shù)現(xiàn)代瀏覽器使用名為__proto__ 的特殊屬性實現(xiàn)原型,該屬性發(fā)音為dunder proto(雙下劃線原型的縮短版本)。
重要的是要注意__proto__是一種新的JavaScriptES6語法,可能在舊瀏覽器中不可用。或者,您可以使用Object.create方法創(chuàng)建原型。