Sobes.tech
Middle

Чаро дар JavaScript калимаи калидии 'this' истифода наметавонем?

sobes.tech AI

Ҷавоб аз AI

Интиқол қилинган this ёки ёлғон функцияларида ўз контекстига боғлаш учун ишлатилмайди. Ёлғон функциялар ўзининг this-ини яратмайди, балки унинг қийматини унинг таърифланган соҳасидан мерос олади.

Шунингдек, this асинхрон операцияларининг қайтарилган қўнғироқларида ёки ҳодиса ишловчиларда аниқ контекст боғланмаган ҳолда ишончли эмас (.bind(), .call(), .apply()), чунки унинг қиймати ўзгариши мумкин ёки глобал объектга (не-строг режимда) ёки undefinedга айланиши мумкин.

Масалан:

function анъанавийФункция() {
  console.log(this); // this чақиришдан боғлиқ
}

const ёлғонФункция = () => {
  console.log(this); // this ташқи соҳадан мерос олади
};

const объект = {
  метод: анъанавийФункция
};

объект.метод(); // this - объект
анъанавийФункция(); // this - глобал объект (window / global)

const объект2 = {
  метод: ёлғонФункция
};

объект2.метод(); // this - мерос олинган. Агар глобал соҳада таърифланган бўлса, global/window.