dojoで継承を行う方法

dojoの自前で作ったクラスは多重継承を行うことができます。

https://github.com/aipocom/aipo/blob/e92dfdb9ab71bec5461da82aa7d87aeb40abb8d6/war/src/main/webapp/javascript/aipo/widget/DropdownDatepicker.js#L50

を参考に見てみます。

if(!dojo._hasResource["aipo.widget.DropdownDatepicker"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.


dojo._hasResource["aipo.widget.DropdownDatepicker"] = true;

//クラス名を宣言します。
dojo.provide("aipo.widget.DropdownDatepicker");

//継承元となるクラスを呼び出します。
dojo.require("aimluck.widget.Dropdown");
dojo.require("aipo.widget.DateCalendar");
dojo.require("dojo.date.locale");
dojo.requireLocalization("aipo", "locale");
var nlsStrings = dojo.i18n.getLocalization("aipo", "locale");

//クラスの宣言を行います。
//1つめの引数 aipo.widget.DropdownDatepickerがクラス名になります。
//2つめの引数 aimluck.widget.Dropdownが継承元のクラスになります。継承元のクラスは複数指定することが可能です。
dojo.declare("aipo.widget.DropdownDatepicker", [aimluck.widget.Dropdown], {

    _openDropDown:function(){

        //継承元のクラス内のメソッドを呼び出します。
        //Javaでいうところの super.メソッド名() みたいな感じです。
        aimluck.widget.Dropdown.prototype._openDropDown.apply(this);