Я думаю, что это будет работать:
var contextMap = {}
dojo.provide('menu');
dojo.declare('menu', [dijit.Menu] , {
bindDomNode : function(a,b,c){
this.inherited(arguments);
contextMap[a] = this;
console.log(contextMap)
}
})
Обновленное решение от powtac:
Это работает!Я запускаю это до того, как будут созданы меню.Хитрость заключается в том, чтобы использовать тот же суперкласс, что и className , в этом случае 'dijit.Menu'
в качестве строки.
dojo.ready(function() {
dojo.declare('dijit.Menu', [dijit.Menu], {
bindDomNode: function(a,b,c) {
this.inherited(arguments);
console.log(a);
},
})
})
// ...
menu = new dijit.Menu( ... ); // when called the the event is caught
// and runs into the console.log(a);