this:只要封住函数,任何一个函数系统都会内置一个叫做this的变量。this变量存储的是地址,是当前函数主人的地址。
常用的情况:
对象的函数属性
一般情况下: this==obj,也就是说obj是当前函数的主人。所以说this存储当前主人的地址,并且指向当前主人。(this指向是可以通过apply和call以及bind方法更改的)
全局模式下的函数:
一般来说,函数如果处于全局模式,this指向都是window。但是如果使用严格模式this就是undefined
事件处理函数:
在上面案例中,点击三个按钮输出的都是3。因为循环给每个按钮都添加了点击事件驱动函数(相当于给 每一个btn对象添加事件onclick,属性值为一个函数。也就是说这个函数的主人就是当前按钮)。但是当我们点击事件的时候循环早就已经结束了。记住:i的内存空间并没有被释放,并且三个事件函数都是用的是同个i。
解决:
一:e.target和节点自定义属性
二:this和节点自定义属性
案例:选项卡
<!DOCTYPE html>
<html>
<head