我有以下代码,并且我试图从基类继承。为什么代码说未定义identify()?它不应该从基类中调用函数吗?


  错误:ReferenceError:标识未定义source1.js:23:9


class TestBase {
    constructor() {
        this.type  = "TestBase";
    }

    run() {
        console.log("TestBase Run");
    }

    identify() {
        console.log("Identify:" + this.type);
    }
}

class DerivedBase extends TestBase {
    constructor() {
        super();
        this.type  = "DerivedBase";
    }

    run() {
        console.log("DerivedBase Run");
        identify();
    }
}

window.onload = function() {
  let derived = new DerivedBase();
  derived.run();
}

最佳答案

您必须改为调用this.identify()

有关更多信息,您通常可以阅读有关classes的信息。

请注意,javascript中的类只是prototypal inheritance之上的语法糖。

10-06 02:20