文章目录

前言

一:什么是this

二:this的灵活妙用 


JavaScript系列从入门到精通系列第十九篇:JavaScript中的this关键字-LMLPHP

前言

function fun(a,b){
    console.log(a + b);
}

fun(1,2);

        我们通过形参的形式往参数中添加了参数。浏览器也会默默的给我们传递一个参数过去,这个参数被称为this。传递的节点就是在调用函数的时候。而且,每次都会传。 

JavaScript系列从入门到精通系列第十九篇:JavaScript中的this关键字-LMLPHP

一:什么是this

        传递过去的this对象就是全局的window对象。他是调用方法的时候,浏览器给传递过去的,这个是一个上下文对象。

        当然这个上下文对象不会一直是window对象的,根据函数的调用方式不同,我们this对象指向不同的对象。

function fun(){
    console.log(this);
}

fun();

var obj = {

    name:"孙悟空",
    sayName:fun
};

obj.sayName();//[object Object]

fun();//[object window]

JavaScript系列从入门到精通系列第十九篇:JavaScript中的this关键字-LMLPHP

        使用fun()函数的方式调用时,this永远是window。(本质上这属于window.fun())

        基于方法的形式调用时,this永远是这个方法所在的对象。

        this这个变量指向的对象是会变的,根据调用方式的不同,this只想的具体的对象也不同。

var name = '全局';
function fun(){

    console.log(this.name);
}


var obj = {

        name :"孙悟空",
        sayName:fun
};

var obj2 = {

        name :"沙和尚",
        sayName:fun
};


fun();
obj.sayName();
obj2.sayName();

二:this的灵活妙用 

JavaScript系列从入门到精通系列第十九篇:JavaScript中的this关键字-LMLPHP

 

JavaScript系列从入门到精通系列第十九篇:JavaScript中的this关键字-LMLPHP

JavaScript系列从入门到精通系列第十九篇:JavaScript中的this关键字-LMLPHP

10-08 02:56