0

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?

Air
  • 14,505
GTB
  • 91
  • 1
    Код -- текстом! (Добро пожаловать на StackOverflow!) –  Nov 05 '18 at 15:10

1 Answers1

2

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

(function() {
  console.log(this);
}).call(this);