JavaScript進(jìn)階,人人都能懂的構(gòu)造函數(shù)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
1. 什么是構(gòu)造函數(shù)? 構(gòu)造函數(shù)︰是一種特殊的函數(shù),主要用來(lái)初始化對(duì)象,即為對(duì)象成員變量賦初始值,它總與new運(yùn)算符一起使用。我們可以把對(duì)象中一些公共的屬性和方法抽取出來(lái),然后封裝到這個(gè)函數(shù)里面。 語(yǔ)法:
注意如下小細(xì)節(jié): 1.構(gòu)造函數(shù)名字首字母要大寫 2.我們構(gòu)造函數(shù)不需要return就可以返回結(jié)果,如果沒(méi)有顯式返回對(duì)象,則默認(rèn)返回新對(duì)象。 3.我們調(diào)用構(gòu)造函數(shù)必須使用new 如創(chuàng)建一個(gè)構(gòu)造函數(shù):我們只要new Star()調(diào)用函數(shù)就創(chuàng)建一個(gè)對(duì)象
2. 構(gòu)造函數(shù)和對(duì)象的區(qū)別 構(gòu)造函數(shù),如Stars(),抽象了對(duì)象的公共部分,封裝到了函數(shù)里面,它泛指某一大類( class ) 創(chuàng)建對(duì)象,如new Stars(),特指某一個(gè),通過(guò)new關(guān)鍵字創(chuàng)建對(duì)象的過(guò)程我們也稱為對(duì)象實(shí)例化 3. new關(guān)鍵字執(zhí)行過(guò)程 1,new構(gòu)造函數(shù)可以在內(nèi)存中創(chuàng)建了一個(gè)空的對(duì)象 2. this就會(huì)指向剛才創(chuàng)建的空對(duì)烏 3.執(zhí)行構(gòu)造函數(shù)里面的代碼給這個(gè)空對(duì)象添加屬性和方法 4.返回這個(gè)對(duì)象 4. 遍歷對(duì)象
5. prototype 屬性 每個(gè)構(gòu)造函數(shù)都有一個(gè) prototype 屬性,指向該構(gòu)造函數(shù)創(chuàng)建的對(duì)象的原型對(duì)象。通過(guò) prototype,我們可以為所有由該構(gòu)造函數(shù)創(chuàng)建的對(duì)象共享一些通用的方法或?qū)傩浴?/span>
通過(guò)將 greet 方法添加到 Person 的 prototype,我們可以讓所有由 Person 構(gòu)造函數(shù)創(chuàng)建的對(duì)象共享這個(gè)方法,從而節(jié)省內(nèi)存和優(yōu)化性能。 6. 構(gòu)造函數(shù)的繼承 在 JavaScript 中,繼承是面向?qū)ο缶幊痰闹匾M成部分。通過(guò)繼承,子類可以復(fù)用父類的屬性和方法。構(gòu)造函數(shù)繼承的常用方法是通過(guò) call 或 apply 來(lái)調(diào)用父類構(gòu)造函數(shù)。 1. 使用 call 繼承 通過(guò) call 方法,我們可以在子類構(gòu)造函數(shù)中調(diào)用父類構(gòu)造函數(shù),從而繼承父類的屬性。
2. 使用 Object.create 實(shí)現(xiàn)原型繼承 為了繼承父類的方法,可以使用 Object.create 將子類的原型設(shè)置為父類的實(shí)例。
通過(guò)這種方式,Dog 類不僅繼承了 Animal 的屬性,還可以擴(kuò)展自己的方法。 總結(jié) JavaScript 中的構(gòu)造函數(shù)提供了一種強(qiáng)大而靈活的方式來(lái)創(chuàng)建對(duì)象。通過(guò)理解構(gòu)造函數(shù)的工作原理、原型鏈、繼承機(jī)制等,開發(fā)者可以更加高效地組織代碼,提升應(yīng)用的可擴(kuò)展性和維護(hù)性。在實(shí)際開發(fā)中,合理使用構(gòu)造函數(shù)可以幫助你創(chuàng)建模塊化、易于維護(hù)的代碼結(jié)構(gòu),從而提高項(xiàng)目的整體質(zhì)量。 閱讀原文:原文鏈接 該文章在 2025/7/3 14:24:28 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |