JavaScriptで親クラスのメソッドを呼び出す方法


前提

Javaだと親クラスのhogeメソッドを
super.hogeって感じで呼び出せるけど
Vanilla.JSはどーすんのって話。
ECMAScript2015なんて知りません。
なお、Vanilla.JSにクラスの概念がないことは知ってます。

こうすればいい

main.js

function SuperClazz() {};
SuperClazz.prototype.hoge = function(param) {
    console.log("SuperClazz hoge: " + param);
};

function SubClazz() {
    SuperClazz.call(this);
};

SubClazz.prototype = Object.create(SuperClazz.prototype);
SubClazz.prototype.constructor = SubClazz;

SubClazz.prototype.hoge = function(param) {
    // ↓これ
    SuperClazz.prototype.hoge.call(this, param);
    console.log("SubClazz hoge: " + param);
};

// 実行
const subClazz = new SubClazz();
subClazz.hoge("I Love Vanilla JS");

実行

C>node main
SuperClazz hoge: I Love Vanilla JS
SubClazz hoge: I Love Vanilla JS

はいOK