this
- 每一个函数内部都有一个关键字this
- 函数内部的this只和函数的调用方式有关系,和函数的定义方式没关系
- 函数内部的this指向谁,取决于函数的调用方式
全局定义的函数调用this=>window
定时器的处理函数,this=>window
事件处理函数,this=>事件源
自调用函数,this=>window
忽略函数本身的this指向,转而指向其他
call
- call方法是附加在函数调用后面使用,忽略本身this指向
- 语法:函数名.call(要改变的this指向,要给函数传递的参数1,2,…)
- 立即执行函数
apply
- 语法:函数名.apply(要改变的this指向,[要给函数传递的参数1,2,…])
- 使用apply时,会立即执行函数
bind
- 不会立即执行函数,而是返回一个已经改变了this指向的函数
- 语法:var newFunction=函数名.bind(要改变的this指向);newFunction(传递函数)