成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

super關(guān)鍵字在ES6中的作用是什么-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)super 關(guān)鍵字在ES6中的作用是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

青銅峽網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)于2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

1、當(dāng)作函數(shù)使用

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

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

class A {
 constructor() {
  console.log(new.target.name); //new.target指向當(dāng)前正在執(zhí)行的函數(shù)
 }
}
class B extends A {
 constructor() {
  super();
 }
}
new A() // A
new B() // B

可以看到,在super()執(zhí)行時,它指向的是子類B的構(gòu)造函數(shù),而不是父類A的構(gòu)造函數(shù)。也就是說,super()內(nèi)部的this指向的是B。

2、當(dāng)作對象使用

在普通方法中,指向父類的原型對象;在靜態(tài)方法中,指向父類。

class A {
 c() {
  return 2;
 }
}
class B extends A {
 constructor() {
  super();
  console.log(super.c()); // 2
 }
}
let b = new B();

上面代碼中,子類B當(dāng)中的super.c(),就是將super當(dāng)作一個對象使用。這時,super在普通方法之中,指向A.prototype,所以super.c()就相當(dāng)于A.prototype.c()。

通過super調(diào)用父類的方法時,super會綁定子類的this。

class A {
 constructor() {
  this.x = 1;
 }
 s() {
  console.log(this.x);
 }
}
class B extends A {
 constructor() {
  super();
  this.x = 2;
 }
 m() {
  super.s();
 }
}
let b = new B();
b.m() // 2

上面代碼中,super.s()雖然調(diào)用的是A.prototype.s(),但是A.prototype.s()會綁定子類B的this,導(dǎo)致輸出的是2,而不是1。也就是說,實際上執(zhí)行的是super.s.call(this)。

由于綁定子類的this,所以如果通過super對某個屬性賦值,這時super就是this,賦值的屬性會變成子類實例的屬性。

class A {
 constructor() {
  this.x = 1;
 }
}
class B extends A {
 constructor() {
  super();
  this.x = 2;
  super.x = 3;
  console.log(super.x); // undefined
  console.log(this.x); // 3
 }
}
let b = new B();

上面代碼中,super.x賦值為3,這時等同于對this.x賦值為3。而當(dāng)讀取super.x的時候,讀的是A.prototype.x,所以返回undefined。

注意,使用super的時候,必須顯式指定是作為函數(shù)、還是作為對象使用,否則會報錯。

class A {}
class B extends A {
 constructor() {
  super();
  console.log(super); // 報錯
 }
}

看完上述內(nèi)容,你們對super 關(guān)鍵字在ES6中的作用是什么有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道,感謝大家的支持。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享標(biāo)題:super關(guān)鍵字在ES6中的作用是什么-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://jinyejixie.com/article32/decosc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站建設(shè)、網(wǎng)站排名、商城網(wǎng)站、小程序開發(fā)、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
麻阳| 武威市| 酉阳| 台东市| 娄底市| 祁连县| 望江县| 商丘市| 株洲县| 麻城市| 明溪县| 宿迁市| 故城县| 山阳县| 九龙坡区| 珠海市| 楚雄市| 邳州市| 建德市| 昌黎县| 饶平县| 温宿县| 湘潭县| 玉屏| 政和县| 易门县| 郸城县| 宁明县| 乌鲁木齐县| 黔东| 沭阳县| 赤壁市| 察隅县| 太保市| 伽师县| 酒泉市| 马关县| 天峨县| 闽清县| 昌邑市| 莱州市|