Middle
Ինչու չի կարելի օգտագործել 'this' բանալի բառը JavaScript-ում?
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