2016-09-22 6 views
3

У меня есть два случаяВидимость «это» в Стрелке Функции

const test = { 
    foo: function(){ 
     this.bar(); 
    }, 
    bar: function(){ 
     console.log('bar'); 
    } 
} 
test.foo(); 

в этом случае все работает правильно.

const test = { 
    foo:() => { 
     this.bar(); 
    }, 
    bar:() => { 
     console.log('bar'); 
    } 
} 
test.foo(); 

Во втором случае я получаю сообщение об ошибке:

Uncaught TypeError: Cannot read property 'bar' of undefined 

Я знаю, что могу написал test.bar() в foo функции, но я заинтересован, почему this не доступны стрелки функций объема в этом случае.

+2

Объем в функции стрелки жира не принимает контекста объекта, на который он был вызван –

ответ

3

Как правило, значение функции this зависит от того, как эта функция вызывается.

Функции стрелки импортируют значение this из области, в которой была создана функция.

В середине объектного литерала значение this будет зависеть от того, что вокруг объектного литерала, но, конечно же, не будет самим объектом.

 Смежные вопросы

  • Нет связанных вопросов^_^