This的用法

    This作为JavaScript中的关键字,在函数中具有四种用法。

一、直接在函数中使用,谁调用这个函数,this就指向谁

例如:

 var n = "指我";
function fun(){
console.log(this.n);
}
fun(); //指我

这里this就代表着全局对象。

二、在对象中使用,一般情况下是指向该对象

例如:

 function fun(){
console.log(this.n);
}
var obj = {};
obj.n = "在这里";
obj.m = fun;
obj.m();    //在这里

这里的this就指向这个上级对象。

三、在构造函数中使用

例如:

 function fun(){
this.n = "LOVE";
}
var obj = new fun();
console.log(obj.n);    // LOVE

这里的this就指向这个构造函数生成的一个新的对象。

四、改变This的指向,有两种方法:

    1、call(指向谁,参数1、参数2、...)

    2、apply(指向谁,[参数1、参数2、...])

这两种方法的作用相同,传递的写法不同

例如:

 function Person(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
}
function Worker(name,age,sex,id,tel){
// Person.call(this,name,age,sex);
Person.apply(this,[name,age,sex]);
this.id = id;
this.tel = tel;
}
var worker = new Worker("张三",18,"男","001","123456789");
console.log(worker);

这两种方法的作用都相同

JS之This的用法-LMLPHP

05-11 11:25