1. 概念
- this:当前行为执行的主体(谁执行的这个行为);
- context:当前行为执行的环境;(在哪儿执行的这个行为)
两者无关系
123456789function eat(){this---> someone}someone.eat();~function(){someone.eat();this-->someone}();上面
someone.eat();
this始终是执行者someone跟在哪儿执行无关;- 也跟函数在哪儿定义的无关;
2. 如何区分this
- 非严格模式下:默认都是window在执行,所以this–>window
- 严格模式:没写就是没执行主体,this–>undefined
2.1 函数执行时,函数名前有无 .
- 有则
.
前面是谁this就是谁; - 没有,this就是window/undefined;
|
|
2.2 自执行函数中的this永远是window(不可能出现.
)
|
|
2.3元素绑定某事件,当某事件触发时,执行对应的方法,方法中的this就是当前元素;
|
|
2.4 构造函数中,函数体内的this.xxx=xxx中的this是当前实例
|
|