Ich stoße auf ein Problem bei der Verwendung von RequireJS und prototypaler Vererbung. Hier ist mein Modul:
define(function () {
function Module(data) {
this.data = data;
}
Module.prototype.getData = function () {
return this.data;
};
Module.prototype.doSomething = function () {
console.log(this.data);
console.log(this.getData());
};
return Module;
Module.prototype.callFunction = function (fn) {
if (this[fn]) {
console.log('call');
Module.prototype[fn]();
}
};
});
Dann instanziere ich das Modul folgendermaßen:
var module = new Module({ name: 'Marty' });
module.getData(); // gibt { name: 'Marty' } zurück
module.data; // gibt { name: 'Marty' } zurück
module.callFunction('doSomething') // gibt undefined im ersten (und zweiten) Konsolenlog zurück
Die console.log
s in module.doSomething()
geben immer undefined
zurück. Verstehe ich nicht, wie prototypale Vererbung mit RequireJS funktioniert?