Middle
Бул тууралуу ар кандай контексттерде айтып бер: объекттин методторунда, стрелка функцияларда жана жөнөкөй функцияларда.
sobes.tech AI
AIден жооп
JavaScriptте this мааниси чакыруу контекстине жараша болот:
- Объекттин методторунда
thisтиешелүү объектке шилтеме кылат:
const obj = {
name: 'Alice',
greet() {
console.log(this.name);
}
};
obj.greet(); // Alice
- Жөнөкөй функцияда (метод эмес)
thisрежимге жана чакыруу ыкмасына жараша болот:- Катуу режимде (
'use strict') —thisundefinedболот. - Катуу эмес режимде — глобалдык объект (
windowбраузерде).
- Катуу режимде (
function foo() {
console.log(this);
}
foo(); // window же strict режимде `undefined`
- Сүрөттөлгөн функцияларда
thisлексикалык түрдө сырткы контексттен мурас алат, башкача айтканда, функция декларацияланган аймактан алынады, чакырылган жерден эмес:
const obj = {
name: 'Bob',
arrowFunc: () => {
console.log(this.name);
},
regularFunc() {
const arrow = () => {
console.log(this.name);
};
arrow();
}
};
obj.arrowFunc(); // undefined же сырткы контексттин аты
obj.regularFunc(); // Bob
Ошондуктан, сүрөттөлгөн функциялар this контекстин сырттан сактап калуу үчүн пайдалуу, ал эми жөнөкөй функциялар жана методдор өзүнүн this маанисине ээ, чакыруу ыкмасына жараша.