Sobes.tech
Middle

Тікелей функциялардың қандай ерекшеліктері бар?

sobes.tech AI

AI-дан жауап

JavaScript-те стрелкалы функциялардың ерекшеліктері:

  • this лексикалық байланысы: стрелкалы функциялар өздерінің this контекстіне ие емес, олар оны қоршаған аймақтан мұраға алады. Бұл колбектер ішінде контекстті сақтау үшін ыңғайлы.

  • arguments жоқ: стрелкалы функцияларда өздерінің arguments объектісі жоқ. Аргументтерге қол жеткізу үшін параметрлер немесе rest-параметрлерді пайдалану керек.

  • Құрылым ретінде қолдануға болмайды: стрелкалы функцияларды new арқылы шақыруға болмайды, оларда ішкі [[Construct]] әдісі жоқ.

  • prototype жоқ: стрелкалы функцияларда prototype қасиеті болмайды.

  • Қысқа синтаксис: егер функцияның денесі бір ғана өрнектен тұрса, фигуралы жақшалар мен return сөзін жазбай-ақ қоюға болады.

Мысал:

const add = (a, b) => a + b;

const obj = {
  value: 10,
  increment: function() {
    setTimeout(() => {
      this.value++;
      console.log(this.value); // `this` `obj`-ке сілтеме жасайды
    }, 1000);
  }
};
obj.increment();

Мұнда setTimeout ішіндегі стрелкалы функция this-ті increment әдісінен мұраға алады.