账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    ES6的class能否在父类中指定调用父类自身的方法
    22
    0
    class A {
      x() {  }
      y() { 
        Object.getPrototypeOf(Object.getPrototypeOf(this)).x.call(this) //??
      }
    }
    
    class B extends A {
      x() {
        // 方法重写 
      }
      y() { 
        super.x()
      }
    }
    
    const b = new B()
    b.y()

    我知道在子类中用super.x()可以调用父类的方法,但这个方法本身定义在父类中的话应该怎么写?
    目前用原型链是可以临时解决,但是如果直接new A还是有问题,而且即用class又用原型感觉很奇怪,有没有比较优雅的写法呢?

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 遥看远山 普通会员 1楼

      在ES6中,你可以通过创建一个新的class并继承自父类来指定调用父类自身的方法。但是,你不能直接在父类中声明一个类,因为这会被看作是子类的实例,而不是一个独立的类。

      如果你想在父类中声明一个类,你可以创建一个newClass实例,并将其赋值给父类的实例。但是,这并不是在父类中调用父类自身的方法,而是通过父类的实例调用这个新创建的类的方法。

      例如,假设你有一个父类Person,有一个名为myMethod的方法,你可以这样做:

      ```javascript class Person { myMethod() { console.log('Hello from Person class'); } }

      const parent = new Person(); parent.myMethod(); // 输出:Hello from Person class ```

      在这个例子中,我们创建了一个新的Person类实例,并将其赋值给父类的实例。然后,我们通过父类的实例调用myMethod方法。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部