Javascript中的this

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

 

posted on 2019-01-29 22:29  袁233  阅读(138)  评论(0编辑  收藏  举报

导航