this是 JavaScript 语言的一个关键字。
-它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用。
-this对象在运行时基于函数的执行环境绑定的:在全局函数中,this等于window。
-而当函数作为某个对象的方法调用时。this等于那个对象,(匿名函数的执行具有全局性,因此其this对象通常指向window)
this:这个
this:指的是调用当前方法(函数)的那个对象
- 解析器在调用函数每次都会向函数内部传递进一个隐含的参数
-这个隐含的参数就是this,this指向的是一个对象
-这个对象我们称为函数执行的上下文对象,
-根据函数调用方式的不同,this会指向不同的对象
1.用函数形式调用,this就是window
2.用方法形式调用,this就是调用方法的那个对象
var name="Hole";
function fun(){
console.log(this.name);
}
var obj={
name:"Jeo",
sayName:fun
}
var obj2={
name:"Rose",
sayName:fun
}
fun()//全局下的变量Hole
obj2.sayName()//Rose
3.当用构造函数形式调用时,this就是新创建的那个对象
function creatPerson(name,age){
this.name=name;
this.age=age;
this.say=function(){
alert('hello:'+name);
}
}
var obj=new creatPerson("Jeo",23);
var obj2=new creatPerson("Rose",14);
obj.say();//hello:Jeo
4.使用call和apply调用时,this是指定那个对象
var obj={name:'Jeo'};
var obj2={name:'obj2'};
function fun(a,b){
alert(a);
}fun.call(obj,2,3);//this指向第一个参数:obj