В этом посте мы обсудим использование JavaScript этого ключевого слова в стрелочных функциях и его связь с контекстом выполнения с простым и понятным объяснением.

Наиболее важной частью этой темы является контекст выполнения, поскольку объект, на который указывает ключевое слово this в стрелочной функции, напрямую связан с тем, к какому родительскому (охватывающему) контексту выполнения он принадлежит. this в функции стрелки наследуется от окружающего контекста выполнения.

Давайте разберемся с этим на примерах:

var name= 'Bill';

var obj1 = {
    getName:()=>{
        return this.name;} // this points global object. this.name=Bill
};

В этом примере окружающий контекст выполнения стрелочной функции является глобальным контекстом выполнения, поэтому здесь этоключевое слово указывает на глобальный объект, а свойство getName возвращает «Bill».

Другой пример:

var name= 'Bill';

var obj1 = {
    name: 'Alex',
    getName:function(){ // Parent(enclosing) execution context of arrow function when function called.
        name:'Phill';
        return ()=>this.name} //this points obj1 object. this.name=Alex
};

Здесь родительским (охватывающим) контекстом выполнения функции стрелки является свойство getName function. В свойстве getNameфункции этоключевое слово указывает на объект obj1 , поэтому этоключевое слово в функции стрелки также указывает на obj1объект.

Последний:

var name= 'Bill';

var obj1 = { // objects can not create an execution context without function calling.
    name: 'Alex',
    getName:()=>{ // Parent(enclosing) execution context of arrow function is global execution context.
        return ()=>this.name} //this points global object. this.name=Bill
};

Вызов функции необходим для создания контекста выполнения в JavaScript. Здесь нет закрывающей функции для стрелочной функции, которая вызывает создание нового контекста выполнения. Здесь родительский (охватывающий) контекст выполнения является глобальным контекстом выполнения.

В результате ключевое слово this в функции стрелки указывает на тот же объект, на который указывает ключевое слово this в родительском (окружающем) контексте выполнения.

Если вам понравилось и вы хотите обновлений и новых статей, пожалуйста, следуйте за мной на среде.