Middle
Որտե՞ղից է գալիս ֆունկցիայի կոնտեքստը JavaScript-ում։
sobes.tech AI
Պատասխան AI-ից
Ճառագայթային ֆունկցիաները չունեն իրենց սեփական this-ը։ Նրանք "կապում" են this-ի արժեքը լեքսիկային շրջապատից, որտեղ նրանք հայտարարվել են։ Դա նրանց դարձնում է օգտակար բլոկբեքների համար մեթոդների ներսում կամ DOM իրադարձությունների հետ աշխատելիս։
const objWithArrow = {
name: 'Arrow Obj',
method() {
const arrowFunc = () => {
console.log(this.name); // `this`-ը վերցվում է `method`-ից (objWithArrow)
};
arrowFunc();
}
};
objWithArrow.method(); // Arrow Obj
// Համեմատեք սովորական ֆունկցիայի հետ
const objWithRegular = {
name: 'Regular Obj',
method() {
const regularFunc = function() {
console.log(this); // `this`-ը կլինի window կամ undefined (կախված strict ռեժիմից) այս կոնտեքստում
};
regularFunc();
}
};
objWithRegular.method(); // window (կամ undefined)
Կոնտեքստի սահմանումը՝ JavaScript-ի հիմնական առանձնահատկություններից է, և այս կանոնների ըմբռնումը կարևոր է ֆունկցիաներով և օբյեկտներով ճիշտ աշխատելու համար։