В этом посте мы обсудим использование 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 в родительском (окружающем) контексте выполнения.
Если вам понравилось и вы хотите обновлений и новых статей, пожалуйста, следуйте за мной на среде.