Sobes.tech
Junior — Middle

Kā atšķiras bultiņas funkciju izmantošana no standarta funkcijām JavaScript?

sobes.tech AI

Atbilde no AI

JavaScript šautuļu funkcijas atšķiras no standarta funkcijām dažos galvenajos punktos:

  • this konteksts: Šautuļu funkcijās this leksikāli manto no apkārtējā konteksta, tas ir, tās neveido savu this kontekstu. Parastajās funkcijās this ir atkarīgs no tā, kā funkcija tiek izsaukta.

  • arguments trūkums: Šautuļu funkcijas nav savs arguments objekts. Lai piekļūtu argumentiem, jāizmanto parametri vai ārējās mainīgās.

  • Nav iespējams izmantot kā konstruktoru: Šautuļu funkcijas nevar izsaukt ar new, jo tām nav iekšējās [[Construct]] metodes.

  • Īsāka sintakse: Šautuļu funkcijas parasti ir īsākas un ērtākas rakstīt īsām funkcijām.

Piemērs:

const obj = {
  value: 10,
  regularFunc: function() {
    console.log(this.value); // 10
  },
  arrowFunc: () => {
    console.log(this.value); // nenoteikts vai ārējā konteksta vērtība
  }
};

obj.regularFunc(); // izvadīs 10
obj.arrowFunc();   // izvadīs undefined

Tādējādi, izvēle starp šautuļu un parasto funkciju ir atkarīga no nepieciešamības pārvaldīt kontekstu un lietošanas īpatnībām.