JS箭头函数

箭头函数的作用域是和定义这个箭头函数的父级上下文绑定在一起的
匿名函数的作用域是和定义匿名函数的上下文绑定在一起的

luke = {
    id: 2,
    say: function() {
        setTimeout(function() {
            console.log(this.id)
        }, 50)
    },
    sayWithThat: function() {
        let that = this
        setTimeout(function() {
            console.log(that.id)
        }, 50)
    },
    sayWithArrow: function() {
        setTimeout(() => {
            console.log(this.id)
        }, 50)
    },
    sayWithGlobalArrow: () => {
        setTimeout(() => {
            console.log(this.id)
        }, 50);
    }
}

luke.say()
luke.sayWithThat()
luke.sayWithArrow()
luke.sayWithGlobalArrow()

有了箭头函数,再也不用写that这种hack

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容