有个问题问下老师

来源:3-6 选择练习

weixin_慕移动6442865

2020-11-23 19:46:34

请问老师,只要是this就是全局对象?还是说这道题目是因为obj.c[2]();是打点调用,所以这里this【1】是全局变量A。


写回答

2回答

好帮手慕夭夭

2020-11-24

同学你好,理解的不对,参考如下重新理解:

this表示的是什么,要分情况:this在全局下使用,指向的是window(即全局对象)。如果this在函数中使用,那么指向的是函数的调用者。即函数被window调用,它里面的this才会指向window。如果函数不是window调用的,那么就要具体情况具体分析了,也就是根据代码看谁调用了函数,它里面的this就会指向谁。

例如本题代码中,c[2]获取到了数组c中的函数,然后加括号调用。此时是数组c调用的函数,那么如下的this指向的是数组c。

http://img.mukewang.com/climg/5fbc64e409e946c803920288.jpg

所以this[1]相当于c[1] , c[1]表示获取了数组c中索引为1的元素,即元素a,a是一个变量,在代码中,只有一个变量a,即代码中第一句定义的var a=6 ,所以输出的结果为6。

http://img.mukewang.com/climg/5fbc657f09cc99e203510184.jpg

祝学习愉快~

0

weixin_慕移动6442865

提问者

2020-11-23

看了规则四IIFE后,我发现我理解好像错了,麻烦老师解释下?

0

0 学习 · 15276 问题

查看课程