Sobes.tech
Middle

Уч ишара функциясы менен кадимки аталыштуу функциянын айырмасы эмнеде?

sobes.tech AI

AIден жооп

JavaScriptтеги стрелкалык функциялар жөнөкөй аталыштуу функциялардан бир нече негизги жагдайда айырмаланат:

  • this контексти: Стрелкалык функциялар өзүнүн this-ине ээ эмес; алар айланасындагы лексикалык контексттен this-ти мурас алышат. Адистик функциялар өзүнүн this-ине ээ жана чакырылыш ыкмасына көз каранды.
  • arguments жоктугу: Стрелкалык функциялар arguments объектисине ээ эмес. Аргументтерге жетүү үчүн параметрлер же REST параметрлерин колдонуу керек.
  • Курулуш катары колдонулбайт: Стрелкалык функцияларды new менен чакырса болбойт.
  • Синтаксис: Стрелкалык функциялар кыска жана кыска функцияларды жазуу үчүн ыңгайлуу.

Мисал:

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

console.log(obj.regularFunc()); // 42
console.log(obj.arrowFunc());   // белгисиз, анткени `this` `obj`ке көрсөтпөйт