Sobes.tech
Junior — Middle

Ինչպես է տարբերվում սլաքային ֆունկցիաների օգտագործումը ստանդարտ ֆունկցիաներից JavaScript-ում?

sobes.tech AI

Պատասխան AI-ից

JavaScript- ի սլաքային ֆունկցիաները տարբեր են ստանդարտ ֆունկցիաներից մի քանի հիմնական կետերում՝

  • this կոնտեքստը՝ Սլաքային ֆունկցիաներում, this-ը լեքսիկապես ժառանգվում է շրջակա կոնտեքստից, այսինքն՝ այն չի ստեղծում իր սեփական this կոնտեքստը։ Սովորական ֆունկցիաներում, this-ը կախված է այն բանից, թե ինչպես է ֆունկցիան կանչվում։

  • arguments-ի բացակայությունը՝ Սլաքային ֆունկցիաները չունեն իրենց սեփական arguments օբյեկտը։ Արժեքների հասանելիության համար պետք է օգտագործել պարամետրեր կամ արտաքին փոփոխականներ։

  • Չեն կարող օգտագործվել որպես կոնստրուկտոր՝ Սլաքային ֆունկցիաները չեն կարող կանչվել new-ով, քանի որ չունեն ներքին [[Construct]] մեթոդը։

  • Կարճ սինտաքսիս՝ Սլաքային ֆունկցիաները սովորաբար կարճ են և ավելի հարմար՝ փոքր ֆունկցիաներ գրելու համար։

Օրինակ՝

const obj = {
  value: 10,
  regularFunc: function() {
    console.log(this.value); // 10
  },
  arrowFunc: () => {
    console.log(this.value); // անորոշ կամ արտաքին կոնտեքստից արժեք
  }
};

obj.regularFunc(); // կտպի 10
obj.arrowFunc();   // կտպի undefined

Այսպիսով, ընտրությունը սլաքային և սովորական ֆունկցիայի միջև կախված է կոնտեքստը կառավարելու անհրաժեշտությունից և օգտագործման առանձնահատկություններից։