Sobes.tech
Middle

Ի՞նչ տարբերություն կա սլաքային ֆունկցիաների և ֆունկցիայի հայտարարության միջև։

sobes.tech AI

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

Հիմնական տարբերությունները սլաքային ֆունկցիաների և ֆունկցիայի հայտարարության միջև.

  • Սինտաքս: Սլաքային ֆունկցիաները կարճ են և չունեն սեփական անուն:

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

  • arguments օբյեկտ: Սլաքային ֆունկցիաներում չկա arguments օբյեկտ, սովորական ֆունկցիաներում կա:

  • Չի կարելի օգտագործել որպես կոնստրուկտոր: Սլաքային ֆունկցիաները չեն կարող կանչվել new-ով:

  • prototype բացակայում է: Սլաքային ֆունկցիաների չունեն prototype հատկություն:

Օրինակ:

const obj = {
  value: 42,
  regularFunc: function() { return this.value; },
  arrowFunc: () => this.value
};

console.log(obj.regularFunc()); // 42
console.log(obj.arrowFunc());   // undefined, քանի որ `this` վերցվում է արտաքին կոնտեքստից