Kontext via parameter i JavaScript
Det finns en annan lösning på problemet. Låt oss göra
så att funktionen child tar emot
en parameter:
function child(param) {
// kod kommer att vara här
}
Och när vi anropar denna funktion kommer vi att skicka
this till den som en parameter:
function parent() {
child(this); // skickar this som en parameter
function child(param) {
// i variabeln param ligger det överförda innehållet från this
}
}
Eftersom anropet till child utförs
i den överordnade funktionen, så pekar det överförda
this på det som behövs. Sedan
hamnar denna this i parametern param
och kommer att vara tillgänglig inuti funktionen i detta skick.
Här är den slutgiltiga koden:
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
child(this); // skickar this som en parameter
function child(param) {
console.log(param.value); // skriver ut inputens value
}
}
Ta koden från den föregående uppgiften och åtgärda problem med koden med hjälp av det andra sättet som studerats.