解析器在调用函数每次都会向函数内部传递一个隐含的参数,这个隐含的参数就是this
1.普通函数中,this指向window,严格模式("use strict")下是undefined
2.构造函数,原型对象中,this指向实例对象
3.定时器中,this指向window
4.对象方法中,this指向该对象
5.事件绑定中,this指向绑定事件对象
可以使用apply或者call 改变this的指向 和bind方法
使用方法:
函数名.apply(对象,[参数1,参数2...]);
函数名.call(对象,参数1,参数2...);
var newObj=函数名.bind(对象,参数1,参数2...);
区别:call和apply是直接调用,而bind有返回值,而返回值是复制之后的这个函数