this
解析器在调用函数每次都会向函数内部传递进一个隐含的参数,这个隐含的参数就是this,this指向的是一个对象,这个对象我们称为函数执行的 上下文对象。
根据函数的调用方式的不同,this会指向不同的对象:【重要】
1.以函数的形式调用时,this永远都是window。比如
fun();相当于window.fun();2.以方法的形式调用时,this是调用方法的那个对象
3.以构造函数的形式调用时,this是新创建的那个对象
4.使用call和apply调用时,this是指定的那个对象
针对第1条的举例:
1 | function fun() { |
打印结果:
1 | Window |
上面的举例可以看出,this指向的是window对象,所以 this.name 指的是全局的name。
第2条的举例:
1 | function fun() { |
打印结果:
1 | Object |
上面的举例可以看出,this指向的是 对象 obj2 ,所以 this.name 指的是 obj2.name。
箭头函数中this的指向:
ES6中的箭头函数并不会使用上面四条标准的绑定规则,而是会继