【发布时间】:2018-06-27 18:56:52
【问题描述】:
我试图了解箭头函数如何传递给setTimeout,从先前的执行上下文中记住this 的值。我知道this 值是在执行箭头函数时使用词法范围规则查找的。这是否意味着箭头函数关闭了变量和 this 关键字?
var obj = {
name: 'TestName',
func: function() {
console.log(this)
setTimeout(() => console.log(this), 1000)
}
}
obj.func() //{name: "TestName", func: ƒ}
【问题讨论】:
-
在普通函数中,
this是不使用词法范围规则查找的。箭头函数改变了这一点并将this保存在闭包中。 -
感谢 Barmar,我更正了关于查找的声明
标签: javascript closures this