Il-funzjonijiet tal-vleġġ huma aktar qosra, iżda d-differenzi reali huma fil-imġiba tal-ligadur, mhux biss is-sintassi.
const regular = function () {};
const arrow = () => {};
const short = x => x * 2; // implicit return for one expression
Il-funzjonijiet tal-vleġġ huma aktar qosra, iżda d-differenzi reali huma fil-imġiba tal-ligadur, mhux biss is-sintassi.
const regular = function () {};
const arrow = () => {};
const short = x => x * 2; // implicit return for one expression
1. L-ebda this proprju — il-vliegħ jereditaw this mill-ambitu li jagħti ħamrija. Din hija d-differenza l-aktar importanti u għaliex huma tajba għal callbacks:
const timer = {
seconds: 0,
start() {
setInterval(() => this.seconds++, 1000); // ✅ `this` is timer
// a regular function here would have its own `this` (undefined) → bug
},
};
2. L-ebda oġġett arguments — uża parametri rest minflok:
const sum = (...args) => args.reduce((a, b) => a + b, 0);
3. Ma jistgħux jintużaw bħala konstruttori — new arrow() jitla', u m'għandhomx prototype.
const obj = {
name: "Ann",
greet: () => `Hi ${this.name}`, // ❌ `this` is NOT obj (it's outer scope)
greet2() { return `Hi ${this.name}`; }, // ✅ method needs dynamic `this`
};
Titlaqax il-vliegħ għal metodi tal-oġġett (mhumiex se jintabuq mal-oġġett) jew meta trid this/arguments dinamiku (manipulatori tal-avvenimenti li jiddependu fuq this li jkun l-element).
Uża vliegħ għal callbacks u funzjonijiet qosra fejn l-eredità this hija dak li tixtieq; uża funzjonijiet ordinarja għal metodi, konstruttori, u metodi ta' prototip.