zoukankan      html  css  js  c++  java
  • js中this的四种调用模式

        在js中,this的含义比较多,在不同的情况下,代表的意义也不一样。总的来说有以下四种含义:

    一、纯粹的函数调用

        在这种模式下,this代表全局对象Global。

       

       function test(){
    
            this.x=1;
    
            alert(this.x);
    
    
        }
    
        test();
    
       输出结果是1.

    二、作为对象方法的调用

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

       

        function test(){
    
           alert(this.x);
    
        }
    
       var o={};
    
        o.x=1;
    
        o.m=test;
    
        o.m();//1

        

    三、作为构造函数调用

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

        

       function test(){
    
             this.x=1;
    
    
          }
    
      var 0=new test();
    
         alert(o.x);//1

      运行结果为1,这里的this已经不是全局对象了。

        为了区分上面的例子:

      

       var x=2;
       
       function test(){
    
             this.x=1;
     
       }
    
    
       var o=new test();
    
          alert(x);//2

    四、apply 调用

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

        

      var x=0;
       function test(){
    
         alert(this.x);
     
      }
    
       var o={};
    
         o.x=1;
    
         o.m=test;
    
        o.m.apply();//0

       apply()的参数为空时,默认调用全局对象。因此运行结果是0,证明this指的是全局对象。

        如果写成这样:

        

      o.m.apply(o);//1

       证明这时this代表的是对象o。

  • 相关阅读:
    延迟消失菜单
    控制产品上下滚动
    百度音乐全选
    百度文库评分两种代码写法
    选项卡
    搜狐视频
    m 调用传参图片切换
    IIS 7.5站点配置
    jquery plugins —— datatables 搜索后汇总
    jquery plugins —— datatables 增加行号
  • 原文地址:https://www.cnblogs.com/leyan/p/6100758.html
Copyright © 2011-2022 走看看