- 全局调用 fun() this=>window
- 对象调用 obj.fun() this=>点前面是谁就指谁
- 定时器处理函数 this=>window
- 事件处理函数 input上的οnclick="fun(this)" this=>指向事件源(谁身上的事件,这里即是input)
- 自执行函数 this=>window
改变函数this向的方法
1.apply()
- 语法:fun.apply(你想要改变fun的this指向,第二个参数是一个数组 数组里的元素依次给fun传参);
- 会直接调用函数
- 第一个参数不写或者写一个null,表示fun的this将指向window
2. call()
- 语法:fun.call(你想要改变fun的this指向,从第二个参数开始依次传递给fun做参);
- 会直接调用函数
- 第一个参数不写或者写一个null,表示fun的this将指向window
3.bind()
- fun.bind(你想要改变fun的this指向,从第二个参数开始依次传递给fun做参);.
- 不会立即执行函数
- 返回值是一个改变了this指向的函数,需要再次调用
- 它对函数的传参有两种方式 (1)、直接冲bind的第二个参数开始传 (2)、在返回的那个函数上面传参
https://haokan.baidu.com/v?vid=654885283319969871&pd=bjh&fr=bjhauthor&type=video