Kann mir jemand erklären warum, wenn drawSection
heißt 'dieser' Wert wird der globale Geltungsbereich?.dojo require und scope
Ist es sowieso erforderlich hier zu verwenden, ohne das Widget in einer anderen Variablen speichern zu müssen, bevor ich es verliere?
define("my/TextBox", [
"dojo/_base/declare",
"dijit/form/ValidationTextBox"
], function(
declare, ValidationTextBox
) {
function drawSection() {
alert(this);
require(["dojo/dom-construct"], function(domConstruct) {
alert(this); // this = window
});
};
return declare([ValidationTextBox], {
postCreate: function() {
this.inherited(arguments);
drawSection.call(this)
}
});
});
danke für den tip .... wieso kommt es hier wieder zum globalen umfang? – blu10
es dauert den vom Aufrufer definierten Umfang ('require'), was' window' ist. – ben
Genau wie gesagt, dann bedeutet 'lang.hitch (this, function() {})' die Funktion in 'this' auszuführen beziehen sich auf die aktuelle Klasse, in einem anderen Begriff, wenn wir erklären 'lang.hitch (window, function() {})' es wird im Bereich von 'window' nicht die Klasse ausführen. –