Sobes.tech
Junior

Афзоиши функсионалӣ чист ва барои чӣ лозим аст?

sobes.tech AI

Ҷавоб аз AI

Ифодаи функсионалӣ — ин муайян кардани функсия дар дохили изрази дигар аст. Он ҳамчун оператори алоҳида function ном(...) {} эълон намешавад, балки ба тағйирёбанда таъин карда мешавад, ҳамчун хосияти объект ё ҳамчун аргументи дигар функсия истифода мешавад.

Барои чӣ лозим аст?

  • Эҷоди функсияҳои номаълум: Имкон медиҳад, ки функсия бе ном муайян карда шавад, ки барои callbackҳо ё функсияҳои якдафъаона муфид аст.
  • Кушодан (Closures): Ифодаҳои функсионалӣ одатан барои эҷоди кушоданҳо истифода мешаванд, ки имкон медиҳанд, ки функсия "ҳарфҳо" ёдгории тағйирёбандаҳоро аз муҳити беруна дошта бошад, ҳатто пас аз анҷоми функсияи беруна.
  • ИФИ (Функсияҳои дарҳол даъватшуда): Кодро изоляция мекунад ва пешгирӣ мекунад, ки фазои глобалӣ ифлос шавад.
  • Таърифи динамикӣ: Функсияҳо метавонанд дар асоси шароити иҷрои барнома эҷод ва таъин карда шаванд.

Масали ифодаи функсионалии номаълум:

// Таъин кардани функсияи номаълум ба тағйирёбанда
const greet = function(name) {
  console.log(`Салом, ${name}!`);
};

greet("Дунё");

Масали IIFE:

(function() {
  // Код дар дохили ин функсия фавран иҷро мешавад
  // ва тағйирёбандаҳои дар дохили он дастрас нестанд
  let privateVariable = "пинҳон";
  console.log(privateVariable);
})();

// console.log(privateVariable); // Хатогӣ: privateVariable муайян нашудааст