如何在JavaScript中调用super / base方法?

时间:2014-03-12 23:39:14

标签: javascript super

我必须在Javascript中实现以下代码,但在javascript中找不到等效的super.say()。怎么做这个翻译?

class Foo {
    public void say() {
      System.out.println("foo");  
    }
}


class Bar extends Foo {

    static int counter = 0;

    public void say() {
        super.say();
        counter++;
        System.out.println("bar " + counter); 
    }
}

2 个答案:

答案 0 :(得分:4)

有一篇文章详细描述了它:http://joshgertzen.com/object-oriented-super-class-method-calling-with-javascript/

基本上,你需要存储对你的基本方法的引用,然后在“派生”(也许是“阴影”可能是一个更好的词)方法中调用它。

答案 1 :(得分:0)

关键字super不像Java那样在Javascript中工作,因为没有类的概念。没有课程,你就没有后代,因此super在这种情况下是无用的。

您可以实现super之类的内容,例如here所述。