2016-03-22 5 views

ответ

5

Функции стрелки «рождаются», привязанные к значению this, как это было во время их создания. Когда вы сделаете свой призыв к getName():

var nameFunc = obj.getName(); 

затем внутри getName() значение this является ссылкой на obj. Ваш оператор return создает функцию стрелки, поэтому эта функция привязана к obj. Это как если бы вы написали:

getName: function() { 
    return function() { 
     return this.name; 
    }.bind(this); 
    } 

Это просто способ работы стрелок, и да, это отличается от обычных функций.