• Jq this的指向问题


    JavaScript 有一套完全不同于其它语言的对 this 的处理机制。 在五种不同的情况下 ,this 指向的各不相同。
    1.全局范围内 this
    2. 这样也是全局 test.foo();
    3.方法调用,指向test test.foo();
    4. new foo(); 指向新创建的函数
    5.apply,call 函数内的 this 将会被 显式设置为函数调用的第一个参数。

    this指向核心的一句 :哪个对象调用函数,函数里面的this指向哪个对象。

    1.第一种情况,这个this指向的是全局对象,因为它是在全局调用的
     var name="abc";
       function test()
      {
          console.log(name);//abc
     }
    test();
    2 new这个实例会改变this的指向,因为用new后开辟一个新的内存,然后this会指向新开辟的内存

        var name="小兰";
        function test(name)
         {
             this.name=name
             console.log(this.name);//小黑
          }
       var windownew=new test("小黑")();




    下面两例子可以很明显的对比出来,谁调用的函数this就指向谁,第一个例子很明显是eat这个调用的,所以其this就指向eat的作用域,第二个例子很明显是全局调用,所以this指向全局变量
       var name="小白";
        function Animal(name,age){
                    this.name=name;
                    this.age=age;
                }
                //原型中添加方法
                Animal.prototype.eat={ 
                  name:"小黄",
                  methodone:function(){
                    console.log(this.name)//小黄
                  },
                  methodtwo:function(){
                    console.log(this.name)//小白
                  }                      
                }; 
                var dog=new Animal("小苏",20);
            var dogtwo=dog.eat.methodtwo;
            dog.eat.methodone(); 
            dogtwo();
    
    
    
    
    
  • 相关阅读:
    循环结构进阶
    数组
    循环结构(二)
    循环结构(一)
    选择结构(二)
    选择结构(一)
    Ext tabpanel集成第三方charts(echarts、amcharts等)的问题(报getstyle为null的错误)
    JAVA调用.NET WebService终极方案(包含对SoapHeader的处理)
    【翻译】Organizing ASP.NET MVC solutions 如何组织你的ASP.NET MVC解决方案
    03、Kibana WEB安装配置
  • 原文地址:https://www.cnblogs.com/Dainney/p/11117299.html
Copyright © 2020-2023  润新知