Mit RequireJS, innerhalb eines Moduls, kann ich this
verwenden, um auf das Modul selbst zu verweisen?
heißtVerwendung von 'this' in einem requireJS Modul
define(function() {
var $el;
function init($el) {
this.$el = $el // How can 'this.$el' refer to the $el above?
}
return {
init: init;
}
});
Ich habe versucht call
mit init
zu nennen. d.h.
require(["mymodule"], function(mymodule) {
mymodule.init.call(mymodule);
});
this
aber innerhalb des Moduls bezieht sich nur auf die window
still.
Gibt es eine Möglichkeit, this
Verhalten mehr wie in anderen Sprachen, d. H. Es bezieht sich auf den umschließenden Bereich?
Im Moment muss ich die Modulvariablen vorfixieren, was hässlich ist. heißt
define(function() {
var m_$el;
function init($el) {
m_$el = $el;
}
});
Ihre Aussage ist nicht korrekt. Sowohl "mymodule.init();" als auch "mymodule.init.call (mymodule);" sind gleich, und wenn Sie 'mymodule.init()' ausführen, bezieht sich 'this' innerhalb von' init' auf das Objekt, von dem zurückgegeben wird das Modul, aber nicht zu "Fenster". –
'this' kann sich nur auf Objekte beziehen, kann sich aber niemals auf einen Bereich beziehen. Sie müssen also entweder die Namen ändern, so dass sie nicht miteinander in Konflikt stehen, oder Sie müssen Ihre Daten in dem Objekt speichern, das Sie von der Initialisierung zurückgeben. Verwenden Sie entweder 'this. $ El = $ el' und entfernen Sie' var $ el; 'oder benennen Sie entweder' var $ el' oder den Parameter '$ el' um. –