Kontext über eine Variable in JavaScript
Die Lösung ist die folgende: In der äußeren Funktion schreiben wir
this in eine beliebige Variable und diese Variable
wird in der inneren Funktion zugänglich sein, wie
alle anderen Variablen auch (normalerweise wird diese Variable
self genannt). Auf diese Weise übergeben wir
this von der äußeren Funktion an die innere:
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
console.log(this.value); // gibt 'text' aus
let self = this; // wir schreiben this in eine beliebige Variable, z.B. in self
function child() {
console.log(self.value); // gibt 'text' aus
}
child();
}
Gegeben sei der folgende Code:
<input id="elem" value="3">
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', func);
function func() {
alert( square() );
function square() {
return this.value * this.value;
}
}
Der Autor des Codes wollte, dass beim Verlust des Fokus
das Quadrat der Zahl aus value
der Eingabe auf dem Bildschirm ausgegeben wird. Allerdings wird beim Verlust des Fokus
ein Fehler in der Konsole ausgegeben. Korrigieren Sie den Fehler
des Autors. Schreiben Sie einen Text, in dem Sie
dem Autor des Codes erklären, warum sein Fehler
aufgetreten ist.