Sobes.tech
Middle

Тирүү коддоо: функциялар, шилтемелер функциялары, объекттер жана контекст (this), call/bind үчүн консольдогу чыгышты аныктоо

sobes.tech AI

AIден жооп

JavaScriptте ишке ашыруу контексти (this) функцияны чакырган ыкмага жараша болот. Сүрөттөлүү функциялар (arrow functions) өзүнүн жеке 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 лексикалык түрдө белгиленген.