美文网首页
javascript中的this讲解

javascript中的this讲解

作者: 饥人谷_enzo | 来源:发表于2017-05-19 13:20 被阅读0次

    下面将this的一些基本使用和大家分享一下:

    查看this指向的一句话法则:

    永远指向其所在函数的所有者如果没有所有者时,指向window。

    理解this的要点:关键在于将函数与函数名分开看待。同一个函数,在不同的执行方法下,会有不同的效果。

    如何来进行理解呢,来看几个实例

    1)全局函数中的this指向

    functiontest(){

    alert(this);//test这个函数没有所有者,因此此时this指向的是window

    }

    2)对象方法中的this指向

    o.test=function(){

    alert(this==o);//输出true,o.test表示的是test这个函数的所有者是对象o,因此this应当是指向o的

    }

    3)绑定函数时的this 1

    如下代码,test1和test2中this并不相同

    vartest2=o.test1;//test2这个函数并没有所有者,在此,test2虽然调用了test1这个函数,但是this仍然指向window,而不是指向test1的拥有者:对象o

    test2();

    o.test1=function(){

    alert(this===o);

    }

    这便是上面所说的,要将函数与函数名分开看待

    4)绑定函数时的this 2

    此时如果我们对3)中的代码进行一些修改:

    ffunctiontest(){

    alert(this===o);

    }

    test();//this指向window

    varo={};

    o.test2=test;

    o.test2();//此时test2的所有者为o,而test没有所有者,this在此时指向的是o

    alert(o.test2);

    5)鼠标单击事件等进行函数的绑定时,this的指向

    document.onclick=function(){

    alert(this===document);//输出为true,onclick事件的拥有者是document。因此,此处this指向document。我们可以将document.onclick理解为一个对象方法,如同例4中的o.test2一样。

    }


    参考链接:http://blog.163.com/hongshaoguoguo@126/blog/static/18046981201251935720333/

    相关文章

      网友评论

          本文标题:javascript中的this讲解

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