JS Контекст вызова this внутри функции внутри метода объекта [дубликат]

126
31 марта 2019, 13:50

На данный вопрос уже ответили:

  • Потеря контекста вызова 5 ответов

var obj = { 
  name: 'cc', 
  trade: function() { 
    console.log(this.name); //cc 
  } 
}; 
 
obj.trade(); 
 
 
var obj = { 
  name: 'cc', 
  trade: function() { 
    console.log(this); //name, trade 
    (function() { 
      console.log(this); //window, в этом и вопрос, почему,  
      //ведь эта функция выполняется внутри метода объекта 
    })(); 
  } 
}; 
 
obj.trade();

Почему this у функции, которая находится внутри метода trade объекта obj, равен window, а не obj?

Answer 1

Потому что важно не то, где функция находится, а как вызывается:

(function() {
  console.log(this);
}).call(this);
READ ALSO
Как получить переменную [дубликат]

Как получить переменную [дубликат]

На данный вопрос уже ответили:

152
Создать массив из строки и вернуть новый массив

Создать массив из строки и вернуть новый массив

Задача: задается строка, необходимо вернуть массив состоящий из пар символов, если у последней пары не хватает символа добавить вместо него...

137
telegraf.js ошибка при запуске бота

telegraf.js ошибка при запуске бота

При запуске самого обычного бота из туториалов

193