【第8周 面向对象 3-10 call apply】这里的this为什么指向的是fun1而不是fun2?
问题描述:
老师关于这里的this还是有点模糊,麻烦看下我理解的是否正确:
Q1:因为fun1(33,44)调用之后,符合上下文规则2,所以是fun1的上下文winodw?
是否可以理解为,谁在最后面调用了( funX(33,44) ),这里的this就指谁?
fun2(33,44),这里的this指fun2的上下文?
fun3(33,44),this就指的fun3?
能否这样去记忆规律?
Q2:如果去掉fun1(33,44),是否这里的this就没有实际的意义?
写个全局变量var a = 33,b=44也是无法获得结果?
相关截图:
17
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕慕子
2021-12-09 17:13:40
同学你好,对于你的问题解答如下:
1、因为截图代码中,是将fun1函数中的this作为参数传入apply方法,所以这个this指向的是fun1的上下文。
代码中是通过aplly方法调用fun2的, 所以fun2函数内部的的this指向传入apply方法中的第一个参数,即:fun1的上下文
2、fun1(33,44)调用之后,符合上下文规则2,所以是fun1的上下文winodw 这句话理解是对的。
不要以下图这样的方式去记忆,可以记住一句话:默认情况下,谁调用了该函数,函数内部的this就指向谁
3、如果去掉fun1(33, 44)这句代码,那么,fun内部的代码并不会执行,所以此时不管是this还是全局变量a和b都没有意义了
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星