這篇文章主要為大家展示了“如何實現(xiàn)ES6的class語法”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何實現(xiàn)ES6的class語法”這篇文章吧。
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)懷化,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
image
ES6 的 class 內(nèi)部是基于寄生組合式繼承,它是目前最理想的繼承方式,通過 Object.create 方法創(chuàng)造一個空對象,并將這個空對象繼承 Object.create 方法的參數(shù),再讓子類(subType)的原型對象等于這個空對象,就可以實現(xiàn)子類實例的原型等于這個空對象,而這個空對象的原型又等于父類原型對象(superType.prototype)的繼承關(guān)系
而 Object.create 支持第二個參數(shù),即給生成的空對象定義屬性和屬性描述符/訪問器描述符,我們可以給這個空對象定義一個 constructor 屬性更加符合默認的繼承行為,同時它是不可枚舉的內(nèi)部屬性(enumerable:false)
而 ES6 的 class 允許子類繼承父類的靜態(tài)方法和靜態(tài)屬性,而普通的寄生組合式繼承只能做到實例與實例之間的繼承,對于類與類之間的繼承需要額外定義方法,這里使用 Object.setPrototypeOf 將 superType 設(shè)置為 subType 的原型,從而能夠從父類中繼承靜態(tài)方法和靜態(tài)屬性
以上是“如何實現(xiàn)ES6的class語法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!