美文网首页
JS中this用法简单学习

JS中this用法简单学习

作者: 好孩子_d6ed | 来源:发表于2018-12-14 09:20 被阅读0次

    引用网址苑一峰的网络日志
    this是JS中的一个关键字,在函数运行时,在函数内部会自动生成一个this对象,只能在函数体内部使用
    在函数的不同场合,this有不同的值。总的来说,this就是函数运行时所在的环境对象。

    函数调用

    这是函数最常用的情况,属于全局调用,因此this就代表全局对象。

    var x=1;
    function test(){
    console.log(this.x);
    }
    test();//输出1
    

    作为对象的方法调用

    函数还可以作为某个对象的方法调用,这时this就指这个上级对象

    function test(){
      console.log(this.x);
    }
    var obj={};
    obj.x=1;
    obj.m=test;
    obj.m();//输出1
    

    作为构造函数调用

    所谓构造函数,就是通过这个函数,可以生成一个新的对象。这时,this就指这个新的对象

    function test(){
      this.x=1;
    }
    var obj=new test();
    obj.x;//输出1
    

    比较

    var x=2;
    function test(){
      this.x=1;
    }
    var obj=new test();
    x;//x的值没有变化,输出2
    

    apply调用

    apply()是函数的一个方法,作用是改变函数的调用对象。他的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数

    var x=0;
    function test(){
      console.log(this.x);
    }
    var obj={};
    obj.x=1;
    obj.m=test;
    obj.m.apply();  //输出0
    

    apply()参数为空的时候,默认调用全局对象。因此上述代码运行结果为0,证明this是全局对象。如果把最后一行代码修改为

    obj.m.apply(obj);//输出1
    

    最后结果变成了1,证明this代表的对象obj

    相关文章

      网友评论

          本文标题:JS中this用法简单学习

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