美文网首页
JavaScript中常见的this的指向

JavaScript中常见的this的指向

作者: 四环霉素 | 来源:发表于2018-01-26 15:30 被阅读0次

    1.最常见的情况下,函数中的this是指向顶层对象window的。

    列如这个下面这段代码:

    var a=2;

    function showThis()

    {

    var a=1;

    console.log(this.a);

    }

    showThis();

    this指向了window对象

    结果输出的应该是2.

    2.如果this所在的函数是对象的属性,那么默认情况下this会指向该对象

    如下面这段示例代码:

    var a=2;

    var obj={

    a:1,

    fun:function(){

    console.log(this.a);

    }

    };

    obj.fun();

    this指向了Object

    最终输出的结果应该是1.

    3.JavaScript函数call()或Apply()强制this指向第一个参数对象

    如下面这一小段示例代码:

    var a=2;

    var obj={

    a:1,

    fun:function(){

    console.log(this.a);

    }

    };

    var obj2={

    a:3

    };

    obj.fun.call(obj2);

    this指向Object

    最终程序的输出结果为3.是obj2的a属性的值。

    4 javascript通过new关键字创建的对象,函数中的this会在创建成功后指向被创建的对象

    如下面的示例代码:

    var a=2;

    function fun(a){

    this.a=a;

    }

    var obj = new fun(3);

    console.log(obj.a);

    this指向fun

    在函数执行完之后,fun会赋值给obj,所以最终this指向obj,输出结果为3.

    this绑定的优先级按照4,3,2,1的顺序,new的优先级最高。

    相关文章

      网友评论

          本文标题:JavaScript中常见的this的指向

          本文链接:https://www.haomeiwen.com/subject/ibcwaxtx.html