Ինչպես է տարբերվում սլաքային ֆունկցիաների օգտագործումը ստանդարտ ֆունկցիաներից 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
Այսպիսով, ընտրությունը սլաքային և սովորական ֆունկցիայի միջև կախված է կոնտեքստը կառավարելու անհրաժեշտությունից և օգտագործման առանձնահատկություններից։