Middle
Πώς λειτουργούν οι γεννήτριες σε JavaScript σε σύγκριση με τις κανονικές συναρτήσεις;
sobes.tech AI
Απάντηση από AI
Οι γεννήτορες σε JavaScript είναι συναρτήσεις που μπορούν να διακόψουν την εκτέλεσή τους και να επιστρέψουν ενδιάμεσα τιμές χρησιμοποιώντας τη λέξη-κλειδί yield. Σε αντίθεση με τις κανονικές συναρτήσεις, που εκτελούνται πλήρως και επιστρέφουν μια μοναδική τιμή, οι γεννήτορες επιτρέπουν τη δημιουργία επαναληπτών με επιεική παραγωγή τιμών.
Παράδειγμα γεννήτορα:
function* countUpTo(max) {
let count = 1;
while (count <= max) {
yield count; // διακόπτει την εκτέλεση και επιστρέφει την τιμή
count++;
}
}
const counter = countUpTo(3);
console.log(counter.next().value); // 1
console.log(counter.next().value); // 2
console.log(counter.next().value); // 3
console.log(counter.next().done); // true
Έτσι, οι γεννήτορες είναι χρήσιμοι για εργασία με ακολουθίες δεδομένων που δεν χρειάζεται να υπολογιστούν αμέσως ολόκληρες.