Πλαίσιο μέσω παραμέτρου στο JavaScript
Υπάρχει και μια άλλη λύση στο πρόβλημα. Ας κάνουμε
έτσι, ώστε η συνάρτηση child να δέχεται
μια παράμετρο:
function child(param) {
// εδώ θα είναι ο κώδικας
}
Και κατά την κλήση αυτής της συνάρτησης θα μεταβιβάζουμε
σε αυτήν το this:
function parent() {
child(this); // μεταβιβάζουμε ως παράμετρο το this
function child(param) {
// στη μεταβλητή param βρίσκεται το μεταβιβασμένο περιεχόμενο του this
}
}
Εφόσον η κλήση της child πραγματοποιείται
στη γονική συνάρτηση, τότε και το μεταβιβαζόμενο
this δείχνει σε αυτό που χρειάζεται. Στη συνέχεια,
αυτό το this περνάει στην παράμετρο param
και με αυτήν τη μορφή θα είναι προσβάσιμο μέσα στη συνάρτηση.
Ακολουθεί ο τελικός κώδικας:
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
child(this); // μεταβιβάζουμε ως παράμετρο το this
function child(param) {
console.log(param.value); // εμφανίζουμε το value του input
}
}
Πάρτε τον κώδικα από το προηγούμενο πρόβλημα και διορθώστε το πρόβλημα του κώδικα χρησιμοποιώντας τον δεύτερο τρόπο που μελετήθηκε.