为什么要使用this?
this提供了一种更优雅的方式来隐式传递一个对象的引用,可以将API设计的更加简洁并且易于复用。
关于this如何工作的,有两种误解
- this指向函数本身
- this指向函数的作用域 (this在任何情况下都不指向函数的词法作用域)
this是在运行时候进行绑定的,并不是在编写时, 它的上下文取决于函数调用时的各种条件。 this的绑定和函数声明的位置没有关系, 只取决于函数的调用方式。
this的绑定规则
默认绑定
无修饰的函数直接调用隐式绑定
当函数有上下文对象时候,会隐式的把这个函数的this绑定到这个对象上
3.显示绑定
通过call 和 apply 改变this指向
4.new调用
使用new来调用函数会执行下面的操作
(1)创建一个新对象
(2)将构造函数的作用域赋给新对象 (this就指向了这个对象)
(3)执行构造函数中的代码 (为新对象添加属性)
(4)返回新对象