久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      es6關(guān)鍵字super是什么意思

      在es6中,super的意思是“超級”,該關(guān)鍵字既可以作為函數(shù)使用,又可以作為對象使用:1、作為函數(shù)時,代表的是父類的構(gòu)造函數(shù),語法為“constructor(){super();}”;2、作為對象時,代表的是父類的原型對象。

      es6關(guān)鍵字super是什么意思

      本教程操作環(huán)境:windows10系統(tǒng)、ECMAScript 6.0版、Dell G3電腦。

      es6關(guān)鍵字super是什么意思

      ES6重新實現(xiàn)了類的繼承,而在繼承的過程中,super關(guān)鍵字實現(xiàn)了至關(guān)重要的作用,可以說理解不了super關(guān)鍵字,也就掌握不了類的繼承,今天我們就一起來盤盤super這個關(guān)鍵字

      首先拋出一個概念: super這個關(guān)鍵字,既可以當(dāng)作函數(shù)使用,又可以當(dāng)作對象使用

      第一種情況:super作為函數(shù)時,代表父類的構(gòu)造函數(shù)

      ES6要求,子類的構(gòu)造函數(shù),必須執(zhí)行一次super函數(shù)

      class A {}class B extends A {   constructor() {     super();//子類的構(gòu)造函數(shù),必須執(zhí)行一次super函數(shù),代表父類的構(gòu)造函數(shù)   }}

      注意:雖然super代表父類的構(gòu)造函數(shù),但此時返回的時B的實例,即super內(nèi)部的this指的是B的實例,因此super()相當(dāng)于 A.prototype.constructor.call(this)

      es6關(guān)鍵字super是什么意思

      上述代碼中,new.target指向當(dāng)前正在執(zhí)行的函數(shù),super()執(zhí)行的時候,它指向的是子類B的構(gòu)造函數(shù),而不是父類A的構(gòu)造函數(shù),也就是說,super()內(nèi)部的this指向B

      第二種情況:super作為對象時,在普通方法中,指向父類的原型對象,在靜態(tài)方法中,指向父類

      class A {   p() {     return 2;   }}class B extends A {   constructor() {     super();//父類的構(gòu)造函數(shù)     console.log(super.p()); // 2   }}let b = new B();

      上面代碼中,super作為函數(shù)時,代表父類的構(gòu)造方法,作為對象時,指向父類的原型對象,即A.prototype,所以super.p()相當(dāng)于A.prototype.p()

      這里還需要注意,由于 super指向父類的原型,所以在父類實例上的屬性或者方法,并不能通過super調(diào)用

      es6關(guān)鍵字super是什么意思

      上面代碼中,p是父類A實例的屬性,super.p 就引用不到它

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號