Sobes.tech
Junior

Πώς καλείτε μια μέθοδο στη σειρά κλήσεων;

sobes.tech AI

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

Χρησιμοποιήστε μια τελεία (.) μεταξύ των κλήσεων μεθόδων ή ιδιοτήτων ενός αντικειμένου. Κάθε κλήση μεθόδου ή πρόσβαση σε ιδιότητα επιστρέφει ένα αντικείμενο, πάνω στο οποίο μπορείτε στη συνέχεια να καλέσετε την επόμενη μέθοδο ή να αποκτήσετε την επόμενη ιδιότητα.

// Παράδειγμα αλυσίδας κλήσεων μεθόδων
" abc ".trim().toUpperCase().split(" ");

/*  
   1. " abc ".trim()  -> "abc"  
   2. "abc".toUpperCase() -> "ABC"  
   3. "ABC".split(" ") -> ["ABC"]  
*/

// Παράδειγμα αλυσίδας με πρόσβαση σε ιδιότητα
const user = {
  address: {
    city: "Μόσχα"
  }
};

user.address.city; // "Μόσχα"

// Παράδειγμα με χρήση προαιρετικής αλυσίδας (?.)
// Επιτρέπει ασφαλή πρόσβαση σε ιδιότητες εσωτερικών αντικειμένων,
// αποτρέποντας σφάλματα αν μια από τις ενδιάμεσες ιδιότητες είναι null ή undefined.
user.address?.street; // undefined, χωρίς σφάλμα

const anotherUser = {};
anotherUser.address?.city; // undefined, χωρίς σφάλμα

Κατά το σχεδιασμό των δικών σας μεθόδων για υποστήριξη αλυσίδας, κάθε μέθοδος πρέπει να επιστρέφει το this (αναφορά στο τρέχον αντικείμενο), εκτός από την τελευταία μέθοδο στη σειρά, η οποία μπορεί να επιστρέψει το τελικό αποτέλεσμα.

class Builder {
  constructor() {
    this.value = "";
  }

  addText(text) {
    this.value += text;
    return this; // Επιστρέφει το this
  }

  addNumber(number) {
    this.value += number;
    return this; // Επιστρέφει το this
  }

  build() {
    return this.value; // Επιστρέφει το τελικό αποτέλεσμα
  }
}

const result = new Builder().addText("Hello").addNumber(123).build();
console.log(result); // "Hello123"