<strong>1.</strong>this既不指向函数自身也不只指向函数的词法作用域。
<strong>2.</strong>this实际上是在函数被调用时发生的绑定,它的上下文取决于函数调用时的各种条件,this的绑定和函数声明的位置没有关系,只取决于函数的调用方式和位置。
当一个函数被调用时,会创建一个活动记录(也就是<strong>执行上下文</strong>),这个记录包含调用栈、调用方法、传入参数等信息,this就是这个时候被确定绑定的。
<strong>3.</strong>this绑定有很多情况,具体优先级如下:
①由new调用,绑定到新创建的对象;
②由call或者apply(或者bind)调用,绑定到指定的对象;
③由上下文对象调用,绑定到那个上下文对象;
④默认:在严格模式下绑定到undefined,否则绑定到全局对象。