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

Аз ин рӯ, интихоби байни функсияи стрелка ва функсияи оддӣ вобаста аст аз ниёз ба идоракунии муҳит ва хусусиятҳои истифода.