Я пытаюсь понять, как функция стрелки, переданная в setTimeout
, запоминает значение this
из предыдущего контекста выполнения. Я знаю, что значение this
ищется с использованием лексических правил видимости при выполнении функций стрелок. Означает ли это, что функция стрелки закрывает переменные и ключевое слово this?
var obj = {
name: 'TestName',
func: function() {
console.log(this)
setTimeout(() => console.log(this), 1000)
}
}
obj.func() //{name: "TestName", func: ƒ}