请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问fn.call(target, call)这句的代码的作用是什么?

如题,本人比较蠢,看了三遍视频都还没弄懂这句代码的意思,只知道是改变this的指向,拜托!

正在回答

1回答

第一,你在进行 DOM 事件绑定的时候,回调函数里,可能会用到 this 吧?首先这一点你要明白。

第二,基于上述情况,用了 fn.call(target) 之后,这个 this 是不是就是 target 了?如果不用 call ,那这个 this 会是什么呢?思考一下

2 回复 有任何疑惑可以回复我~
  • 提问者 慕后端7334286 #1
    先回答第二个问题:不用call的话,就相当于一个普通函数,普通函数的this指向是window。
    经过老师的指点,不知道我现在的理解对不对。
    我就打个比方:假如是代理绑定,点击的是<a>标签,在调用bindEvent函数时,常量target就等于<a>标签 1</a>,当执行到fn.call(target, event),把event参数传递过去,fn函数内的this也就指向target,此时就可以顺利的alert出  标签1  。如果不用call的话,alert出来就是undefined了
    回复 有任何疑惑可以回复我~ 2020-05-12 00:41:25
  • 双越 回复 提问者 慕后端7334286 #2
    是这样的。不过,你这段描述,还不如写几行代码来的清晰,哈哈。
    回复 有任何疑惑可以回复我~ 2020-05-12 07:53:46
  • 提问者 慕后端7334286 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-05-16 10:00:39
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信