龙空技术网

js的super在静态方法和在普通方法之中区分

Jane咯 91

前言:

眼前你们对“js静态方法与非静态方法的区别”都比较着重,朋友们都想要分析一些“js静态方法与非静态方法的区别”的相关资讯。那么小编也在网络上汇集了一些对于“js静态方法与非静态方法的区别””的相关文章,希望各位老铁们能喜欢,大家一起来了解一下吧!

// super在静态方法之中指向父类,在普通方法之中指向父类的原型对象class Parent {  static myMethod(msg) {    console.log('static', msg);  }  // === Parent.prototype.myMethod  myMethod(msg) {    console.log('instance', msg);  }}// 手动添加静态方法Parent.add = function() {  console.log("add fun")}class Child extends Parent {  static myMethod(msg) {    super.myMethod(msg); //static 'msg的内容'    super.add(); // 'add fun'    //static中 此处的super指向父类的Parent,即相当于Parent    // Parent.add() === super.add();    // Parent.myMethod() === super.myMethod()  }  myMethod(msg) {    super.myMethod(msg); // 'instance'  'msg的内容'    //此处的super指向父类的原型对象    // === Parent.prototype.myMethod(msg)  }}Child.myMethod(1); // static 1const child = new Child();child.myMethod(2); // instance 2// === Parent.prototype.myMethod(2) 'instance 2'

标签: #js静态方法与非静态方法的区别