Η διαφορά μεταξύ των μεθόδων κλήσης, εφαρμογής και δέσμευσης JavaScript

Ας το τρυπήσουμε στο μυαλό μας και ας το κάνουμε, για πάντα.

Γράφω αυτήν την μικρο-ανάρτηση επειδή η προαναφερθείσα ερώτηση με στοιχειώνει για πολύ καιρό και ήξερα ότι δεν ήμουν η μόνη. Κάθε φορά που έβλεπα κάποιον να χρησιμοποιεί οποιαδήποτε από αυτές τις τρεις μεθόδους έπρεπε να βιαστώ στο MDN για να καταλάβω τι συνέβαινε.

Ήταν αρκετό. Ήξερα ότι έπρεπε να κάνω κάτι και το έκανα. Υποτίθεται ότι δημιούργησα μια παροιμία ασημένια κουκκίδα που μπορεί να βοηθήσει νέους προγραμματιστές JavaScript.

Αποποίηση ευθυνών : Αυτή δεν είναι μια θεωρητική λύση, αλλά ένας πραγματικά χακαρισμένος τρόπος να θυμάστε τη διαφορά.

Η κύρια αιτία σύγχυσης μεταξύ των μεθόδων call()και των apply()μεθόδων είναι πώς να περάσετε και στα πρόσθετα επιχειρήματα this. Και γιατί έχουμε bind()ούτως ή άλλως;

Ας μάθουμε λοιπόν πώς να ξεχωρίζουμε εύκολα τα τρία.

Ισχύουν()

apply(this [, [arg1, arg2,...]]): Καλεί μια συνάρτηση με μια παρεχόμενη thisτιμή. Περαιτέρω επιχειρήματα παρέχονται ως ένας ενιαίος πίνακας .

Τρόπος για να θυμάστε : « Το pply αποδέχεται επιχειρήματα ως A rray» ή « AA »

Κλήση()

call(this [, arg1, arg2...]): Καλεί μια συνάρτηση με μια παρεχόμενη this. Περαιτέρω επιχειρήματα παρέχονται ως λίστα διαχωρισμένη με κόμμα

Τρόποι να θυμάστε: "Τα επιχειρήματα της κλήσης διαχωρίζονται με κόμματα" ή " CC ".

Δένω()

bind(this): Επιστρέφει μια νέα συνάρτηση της οποίας η thisτιμή είναι συνδεδεμένη με την παρεχόμενη τιμή.

Τρόποι να θυμάστε: το bind () είναι η μόνη μέθοδος από τις τρεις που επιστρέφει μια νέα συνάρτηση εντελώς. Δεν καλεί τη συνάρτηση.

Τύλιξε

Ελπίζω ότι η παραπάνω εξήγηση θα μπορούσε να βοηθήσει μερικούς από εσάς εκεί έξω. Σίγουρα με βοηθά.

Έχετε άλλα κόλπα απομνημόνευσης που σχετίζονται με τον προγραμματισμό; Μοιραστείτε το με την κοινότητα, καθώς θα βοηθήσει όλους. Ειδικά κατά τη διάρκεια αυτών των συνεντεύξεων.

Εάν έχετε απορίες ή αμφιβολίες, ανεβάστε μου στο Twitter @ rajat1saxena ή γράψτε μου στη διεύθυνση [email protected] Προτείνετε αυτήν την ανάρτηση, αν σας άρεσε και μοιραστείτε την με το δίκτυό σας.