Sobes.tech
Middle

Кодиронии зинда: барчаси барчаси дар консол барои коди бо функсияҳо, функсияҳои ишоракунанда, объектҳо ва контекст (this), call/bind

sobes.tech AI

Ҷавоб аз AI

Дар JavaScript, контексти иҷро (this) вобаста аз усули даъвати функсия аст. Функсияҳои стрелка (арроу) соҳиби this нестанд — онҳо онро аз муҳити лексикалӣ гирифта мегиранд.

Масалан:

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

obj.regularFunc(); // 42 — this ба obj ишора мекунад
obj.arrowFunc();   // undefined ё арзиши муҳити беруна (масалан, window.value)

// Истифодаи call/bind:
function show() {
  console.log(this.name);
}

const user = { name: 'Alice' };

show.call(user); // Alice
const boundShow = show.bind(user);
boundShow(); // Alice

Бинобар ин, call ва bind имкон медиҳанд, ки this-ро равшан муайян кунем ҳангоми даъвати функсия, аммо бо функсияҳои стрелка кор намекунанд, зеро this-и онҳо лексикалӣ муайян шудааст.