this一般是指当前所在环境的对象。
对于在对象内部的this,this是指向这个对象本身。但对于匿名函数里面的this,指向的是其上一层对象。
JavaScript 语言之中,一切皆对象,运行环境也是对象,所以函数都是在某个对象之中运行,this就是函数运行时所在的对象(环境)。这本来并不会让用户糊涂,但是 JavaScript 支持运行环境动态切换,也就是说,this的指向是动态的,没有办法事先确定到底指向哪个对象。
全局环境使用this,它指的就是顶层对象window。
构造函数中的this,指的是实例对象。
this绑定方法
Function.prototype.call()方法可以将函数的执行环境改为传入的第一个参数
Function.prototype.apply(),与call功能一样,这是接收一个数组作为函数执行时的参数
bind()方法用于将函数体内的this绑定到某个对象,然后返回一个新函数。