Sobes.tech
Middle

Τι είναι οι μέθοδοι call, apply και bind στη JavaScript;

sobes.tech AI

Απάντηση από AI

call, apply και bind είναι μέθοδοι διαθέσιμες σε όλες τις συναρτήσεις στην JavaScript. Χρησιμοποιούνται για τη διαχείριση του πλαισίου εκτέλεσης της συνάρτησης (την τιμή του this).

  • call: Καλεί μια συνάρτηση με μια συγκεκριμένη τιμή this και ξεχωριστά ορίσματα.
    // Παράδειγμα χρήσης του call
    function greet() {
      return "Γειά σου, " + this.name + "!";
    }
    
    const person = { name: "Ivan" };
    
    console.log(greet.call(person)); // Έξοδος: Γειά σου, Ivan!
    
  • apply: Καλεί μια συνάρτηση με μια συγκεκριμένη τιμή this και ορίσματα που περνιούνται ως πίνακας ή ψευδοπίνακας.
    // Παράδειγμα χρήσης του apply
    function sum(a, b) {
      return this.base + a + b;
    }
    
    const context = { base: 10 };
    const numbers = [5, 3];
    
    console.log(sum.apply(context, numbers)); // Έξοδος: 18
    
  • bind: Δημιουργεί μια νέα συνάρτηση που, όταν καλείται, έχει ορισμένη μια συγκεκριμένη τιμή this. Η αρχική συνάρτηση δεν καλείται άμεσα.
    // Παράδειγμα χρήσης του bind
    const module = {
      x: 42,
      getX: function() {
        return this.x;
      }
    };
    
    const unboundGetX = module.getX;
    console.log(unboundGetX()); // Έξοδος: undefined (το `this` δείχνει στο παγκόσμιο αντικείμενο)
    
    const boundGetX = unboundGetX.bind(module);
    console.log(boundGetX()); // Έξοδος: 42 (το `this` δεσμεύεται στο module)
    

Βασικές διαφορές:

Μέθοδος Μεταβίβαση ορισμάτων Κλήση συνάρτησης Τιμή επιστροφής
call Ξεχωριστά (με κόμμα) Άμεσα Αποτέλεσμα της συνάρτησης
apply Με μορφή πίνακα ή ψευδοπίνακα Άμεσα Αποτέλεσμα της συνάρτησης
bind Ξεχωριστά (με κόμμα) Όχι άμεσα Νέα συνάρτηση με δεσμευμένο this