Sobes.tech
Middle

Неге JavaScriptте 'this' ачкыч сөзүн колдонууга болбойт?

sobes.tech AI

AIден жооп

Бул this сөлөкөт функцияларда өзүнүн контекстине байланыштыруу үчүн колдонулбайт. Сөлөкөт функциялар өзүнүн this-ин түзбөйт, ал эми аны аныкталган чөйрөдөн мурас катары алат.

Ошондой эле, this асинхрондук операциялардын кайтаруу чакырууларында же иш-чара иштетүүчүлөрүндө так эмес, анткени анын мааниси өзгөрүшү мүмкүн же глобалдык объектке (жол берилбеген режимде) же undefinedке айланат (катуу режимде).

Мисал:

функция салттуу() {
  console.log(this); // this чакыруудан көз каранды
}

const стрелкаФункция = () => {
  console.log(this); // this сырткы чөйрөдөн мурас алат
};

объект = {
  метод: салттуу
};

объект.метод(); // this - объект
салттуу(); // this - глобалдык объект (window / global)

объект2 = {
  метод: стрелкаФункция
};

объект2.метод(); // this - мурас. Эгер глобалдык чөйрөдө аныкталган болсо, анда global/window.