- 在js中this代表的是当前函数执行的主体。
- js中context代表的是当前执行的环境
- this是谁和函数在哪里执行和在哪里定义没有关系
以下是区分this的几种方式
- 函数执行,首先看函数名前边是否有 “ . ” 。 有 “ . ” 的话,‘ . ’前边是谁,this就指向谁,没有‘ . ’的话,this就指向window
function fn(){
console.log(this)
}
var obj={};
fn() ///window
obj.fn() ///obj
- 自执行函数中的this永远是window
(function(){
console.log(this);
})()
- 给元素的某一个事件绑定方法,当时间触发的时候,执行方法,方法中的this指向当前元素
ele.onclick=function(){
console.log(this); //ele
}
- 在构造函数中出现的this.xxx=xxx中的this指向的是当前类的实例
function Class(ele){
this.ele=ele; //this指向的是实例
}
var N=new Class();//new出来的实例