JavaScript——this关键字

119 阅读1分钟

1.      this基本上就代表的是对象  在极其少的时候  this不是对象。

  • 在方法中,this 表示该方法所属的对象。
  • 如果单独使用,this 表示全局对象。
  • this 在全局函数中代表的是window全局对象。

2.      在js程序中无论多么复杂的程序  记住this只需要看离他最近(有嵌套关系)的function这个单词的调用者。

实例:

image.png

结果: image.png   分析:因为say函数是由数组obj调用的,所以第一个this指向的就是数组obj,因此fn(this)就等价于fn(obj),所以a打印出数组obj,fn(obj)调用函数就相当于window.fn(obj),所以第二个this指向window

3.      this代表离它最近的嵌套级别的function的调用者,如果没有就是window。

  • 以下是几种返回值不是window情况:          image.png
    除此之外,其余的this基本上都是指向window。

4.笔试题练习

image.png

结果:

image.png

分析:做这种题首先要搞清楚函数中的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