Η μέθοδος bind

Η μέθοδος bind χρησιμοποιείται για τη σύνδεση του context σε μια συνάρτηση. Ως πρώτη παράμετρο πρέπει να μεταβιβάζεται το context, και ως επόμενες παράμετροι - οι παράμετροι της συνάρτησης. Η μέθοδος επιστρέφει μια νέα συνάρτηση, μέσα στην οποία το this θα είναι ίσο με το context που μεταβιβάστηκε.

Σύνταξη

javascriptσυνάρτηση.bind(context, παράμετρος1, παράμετρος2...);

Παράδειγμα

Ας υποθέσουμε ότι έχουμε ένα input:

html<input id="elem" value="text">

Ας υποθέσουμε ότι ο σύνδεσμος προς αυτό το input είναι αποθηκευμένος σε μεταβλητή elem:

javascriptlet elem = document.querySelector('#elem');

Ας υποθέσουμε επίσης ότι έχουμε την ακόλουθη συνάρτηση func:

javascriptfunction func(param1, param2) {
  console.log(this.value + param1 + param2);
}

Ας χρησιμοποιήσουμε το bind για να δημιουργήσουμε μια νέα συνάρτηση, η οποία θα είναι αντίγραφο της συνάρτησης func, αλλά το this σε αυτήν θα είναι πάντα ίσο με το elem:

javascriptlet newFunc = func.bind(elem);

Τώρα στη μεταβλητή newFunc βρίσκεται μια συνάρτηση. Ας την καλέσουμε, μεταβιβάζοντας ως πρώτη παράμετρο '1', και ως δεύτερη '2':

javascriptnewFunc('1', '2');

Ας τα συγκεντρώσουμε όλα μαζί:

javascriptlet elem = document.getElementById('elem');

function func(param1, param2) {
  console.log(this.value + param1 + param2);
}

let newFunc = func.bind(elem);
newFunc('1', '2'); // θα εμφανίσει 'text12'

Παράδειγμα

Δεν είναι απαραίτητο να αποθηκεύουμε το αποτέλεσμα της λειτουργίας του bind σε μια νέα συνάρτηση newFunc, μπορούμε απλά να αντικαταστήσουμε την func:

javascriptlet func = func.bind(elem);

Δείτε επίσης

  • η μέθοδος call,
    που καλεί μια συνάρτηση με context
  • η μέθοδος apply,
    που καλεί μια συνάρτηση με context