有个问题问下老师
来源:3-6 选择练习
weixin_慕移动6442865
2020-11-23 19:46:34
请问老师,只要是this就是全局对象?还是说这道题目是因为obj.c[2]();是打点调用,所以这里this【1】是全局变量A。
2回答
同学你好,理解的不对,参考如下重新理解:
this表示的是什么,要分情况:this在全局下使用,指向的是window(即全局对象)。如果this在函数中使用,那么指向的是函数的调用者。即函数被window调用,它里面的this才会指向window。如果函数不是window调用的,那么就要具体情况具体分析了,也就是根据代码看谁调用了函数,它里面的this就会指向谁。
例如本题代码中,c[2]获取到了数组c中的函数,然后加括号调用。此时是数组c调用的函数,那么如下的this指向的是数组c。
所以this[1]相当于c[1] , c[1]表示获取了数组c中索引为1的元素,即元素a,a是一个变量,在代码中,只有一个变量a,即代码中第一句定义的var a=6 ,所以输出的结果为6。
祝学习愉快~
weixin_慕移动6442865
提问者
2020-11-23
看了规则四IIFE后,我发现我理解好像错了,麻烦老师解释下
相似问题