欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

es6 super關(guān)鍵字的理解與應(yīng)用實(shí)例分析

 更新時(shí)間:2020年02月15日 11:16:46   作者:qdmoment  
這篇文章主要介紹了es6 super關(guān)鍵字的理解與應(yīng)用,結(jié)合實(shí)例形式分析了es6 super關(guān)鍵字的功能、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了es6 super關(guān)鍵字的理解與應(yīng)用。分享給大家供大家參考,具體如下:

前面介紹了static關(guān)鍵字,class類還有另外一個(gè)關(guān)鍵字super

super不僅僅是一個(gè)關(guān)鍵字,還可以作為函數(shù)和對(duì)象。

函數(shù):在子類繼承父類中,super作為函數(shù)調(diào)用,只能寫在子類的構(gòu)造函數(shù)(constructor)里面,super代表的是父類的構(gòu)造函數(shù),

難點(diǎn)理解

但是執(zhí)行過(guò)時(shí)supre()代表的是子類,super()里面的this指向子類的實(shí)例對(duì)象this。

class A {
 constructor() {
  console.log(new.target.name);
 }
}
class B extends A {
 constructor() {
  super();//這里的super相當(dāng)于A類的constructor構(gòu)造函數(shù),會(huì)執(zhí)行A的constructor,但是此時(shí)的this指
      //向的是B,所以打印出B
      //換一種方法理解是:在執(zhí)行super時(shí),A把constructor方法給了B,此時(shí)B有了A的功能,但是執(zhí)
      //行的是B的內(nèi)容,也就是es5的A.prototype.constructor.call(this)。
 }
}
new A() // A
new B() // B

對(duì)象:

這里重點(diǎn)理解下對(duì)象,概念相對(duì)抽象

super作為對(duì)象使用時(shí),分為在普通方法中使用和在靜態(tài)方法中使用

在普通方法找中使用:super指向父類的原型,即A.prototype,可以訪問(wèn)到原型上的方法和屬性

邏輯抽象一:

ES6 規(guī)定,在子類普通方法中通過(guò)super調(diào)用父類的方法時(shí),方法內(nèi)部的this指向當(dāng)前的子類實(shí)例。

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

super.print()雖然調(diào)用的是A.prototype.print(),但是A.prototype.print()內(nèi)部的this指向子類B的實(shí)例

super作為對(duì)象,用在靜態(tài)方法之中,這時(shí)super將指向父類,而不是父類的原型對(duì)象。

class Parent {
 static myMethod(msg) {
  console.log('static', msg);
 }
 myMethod(msg) {
  console.log('instance', msg);
 }
}
class Child extends Parent {
 static myMethod(msg) {
  super.myMethod(msg);
 }
 myMethod(msg) {
  super.myMethod(msg);
 }
}
Child.myMethod(1); // static 1
var child = new Child();
child.myMethod(2); // instance 2

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論