js繼承的幾種方式
這是最傳統(tǒng)的繼承方式,通過設(shè)置個(gè)對(duì)象的原型為另個(gè)對(duì)象,使得新對(duì)象訪問到原對(duì)象的所有屬性和方法。這種方法簡(jiǎn)單易用,但是對(duì)于大型項(xiàng)目來說,可能會(huì)導(dǎo)致內(nèi)存占用過多,因?yàn)槊總€(gè)實(shí)例都會(huì)包含份共享屬性的引用。
通過調(diào)用父類構(gòu)造函數(shù)來實(shí)現(xiàn)繼承。這種方式避免了原型鏈繼承中的問題,但是由于每次都復(fù)制份父類的方法,所以會(huì)有些性能上的損失。
結(jié)合了原型鏈繼承和構(gòu)造函數(shù)繼承的優(yōu)點(diǎn),既解決了屬性和方法的共享問題,避免了重復(fù)創(chuàng)建方法的問題。但存在兩個(gè)父類構(gòu)造函數(shù)被執(zhí)行的問題,這就意味著有初始化值的話會(huì)被執(zhí)行兩次。
主要利用Object.create()方法創(chuàng)建個(gè)新的對(duì)象,這個(gè)新對(duì)象的原型被設(shè)定為我司想要繼承的對(duì)象。對(duì)于那些繼承現(xiàn)有對(duì)象的情況非常有用。
它是組合繼承的種優(yōu)化策略,即不直接調(diào)用超類的構(gòu)造函數(shù),而是先創(chuàng)建個(gè)臨時(shí)對(duì)象,將超類的屬性和方法“寄生”給臨時(shí)對(duì)象,再讓子類繼承這個(gè)臨時(shí)對(duì)象。
以上就是在VR虛擬看房解決方案中采用的些JavaScript繼承方式。當(dāng)然,具體的實(shí)現(xiàn)方式根據(jù)項(xiàng)目的具體需求和規(guī)模來確定。