前端面试中的一道this指向题 求探讨

var name = 'a'
var foo = {
    name: 'b',
    say: function() {
        console.log(this.name)
    }
}

var bar = {
    name: 'c',
    say: function(fun) {
        fun()
    }
}

bar.say(foo.say()) //a

bar.say(() => foo.say()) //b

箭头函数那个能想明白 第一个想不明白为什么this会指向windows呢
查询发现 ‘被嵌套的函数独立调用时,this默认指向了window’ 但是我感觉这也不算独立调用吧 不还是foo.say吗

修改一下 是bar.say(foo.say) //a 多打了一个括号 让大家误解了
#前端工程师##笔经#
全部评论
bar.say(foo.say()) 这行代码是会报错的,先执行foo.say(),输出b。foo.say()执行后的返回值并不是函数类型,所以在执行bar.say(foo.say())的时候是报错的。 ps:最后两行代码最后都是执行 foo.say()。点前面是foo,say也不是箭头函数,所以this都是指向foo的
点赞 回复 分享
发布于 2021-04-18 18:02
第一个的答案是b
点赞 回复 分享
发布于 2021-04-17 10:07
这不是把foo.say()传进来了吗,进行浅拷贝,然后在bar.say里进行独立调用fun()
点赞 回复 分享
发布于 2021-04-15 21:36
答案明明是b  Uncaught TypeError: fun is not a function
点赞 回复 分享
发布于 2021-04-15 16:28

相关推荐

07-02 10:39
门头沟学院 Java
Steven267:说点真实的,都要秋招了,还没有实习,早干嘛去了,本来学历就差,现在知道急了,而且你这个简历完全可以写成一页,劣势太大了,建议转测试
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务