1. this基本上就代表的是对象 在极其少的时候 this不是对象。
- 在方法中,this 表示该方法所属的对象。
- 如果单独使用,this 表示全局对象。
- this 在全局函数中代表的是window全局对象。
2. 在js程序中无论多么复杂的程序 记住this只需要看离他最近(有嵌套关系)的function这个单词的调用者。
实例:
结果:
分析:因为say函数是由数组obj调用的,所以第一个this指向的就是数组obj,因此fn(this)就等价于fn(obj),所以a打印出数组obj,fn(obj)调用函数就相当于window.fn(obj),所以第二个this指向window
3. this代表离它最近的嵌套级别的function的调用者,如果没有就是window。
- 以下是几种返回值不是window情况:
除此之外,其余的this基本上都是指向window。
4.笔试题练习
结果:
分析:做这种题首先要搞清楚函数中的this指向的是谁,也就是看是谁调用的这个函数。从此题可以看出a(5)和a(6)使函数运行了,所以它们的调用者是window,因此函数中this指向的就是window。当a(5)运行,window.x=5,然后返回值为window,所以x=window。而a(6)运行,又将x赋值为6,y值为window。所以打印6.X为undefined,打印window.x就为6