Middle
Γιατί δεν πρέπει να χρησιμοποιείτε τη λέξη-κλειδί 'this' στη JavaScript;
sobes.tech AI
Απάντηση από AI
Αυτό this δεν μπορεί να χρησιμοποιηθεί σε βέλτιστες συναρτήσεις για να δεσμευτεί στο δικό του πλαίσιο. Οι βέλτιστες συναρτήσεις δεν δημιουργούν το δικό τους this, αλλά κληρονομούν την τιμή του από το περιβάλλον στο οποίο ορίστηκαν.
Επιπλέον, το this είναι αναξιόπιστο σε callbacks ασύγχρονων λειτουργιών ή χειριστές συμβάντων χωρίς ρητή δέσμευση πλαισίου (.bind(), .call(), .apply()), καθώς η τιμή του μπορεί να αλλάξει ή να γίνει το παγκόσμιο αντικείμενο (σε μη αυστηρή λειτουργία) ή undefined (σε αυστηρή λειτουργία).
Παράδειγμα:
function παραδοσιακήΛειτουργία() {
console.log(this); // αυτό εξαρτάται από την κλήση
}
const βέλτιστηΛειτουργία = () => {
console.log(this); // αυτό κληρονομείται από το εξωτερικό πλαίσιο
};
const αντικείμενο = {
μέθοδος: παραδοσιακήΛειτουργία
};
αντικείμενο.μέθοδος(); // αυτό - αντικείμενο
παραδοσιακήΛειτουργία(); // αυτό - παγκόσμιο αντικείμενο (window / global)
const αντικείμενο2 = {
μέθοδος: βέλτιστηΛειτουργία
};
αντικείμενο2.μέθοδος(); // αυτό - κληρονομούμενο. Αν οριστεί στο παγκόσμιο πλαίσιο, τότε global/window.