• Javascript--this--学习笔记


    this对象是指向函数的运行环境

    函数被当做某个对象的方法调用时this等于那个对象。

    var name = 'window';
    
    var obj = {
         name:'obj',
         sayName:function(){
             console.log(this.name);
         } 
    };
    
    obj.sayName();//obj

    没有明确的当前对象时   this等于window

    在全局函数(其实就是window的方法)中this等于window.

    var name = 'window';
    function a (){
         console.log(this.name);
    }
    
    a();//window

    局部变量引用的函数

    var name = "window";
    
    var Bob = {
        name: "Bob",
        showName: function(){
            console.log(this.name);
        }
    };
    
    var Tom = {
        name: "Tom",
        showName: function(){
            var fun = Bob.showName;
            fun();
        }
    };
      Bob.showName(); //Bob
      var demo = Bob.showName;
      demo() //window
    Tom.showName();  //window

    setTimeout、setInterval和匿名函数 this等于window

    eval函数

    该函数执行时的作用域是当前作用域,即等同于在该行将里面的代码填进去。

    new

    new关键字后的构造函数中的this指向用该构造函数构造出来的新对象。

    apply和call

    apply和call是唯一能改变函数的this指向的函数

    IE

    在使用attachEvent()方法时,事件处理程序会在全局作用域中运行,this等于window。

    var btn = document.getElementById('myBtn');
    btn.attachEvent('onclick',function(){
        console.log(this === window);//true
    });

    把外部函数的this对象保存在一个函数能访问到的变量里,就能访问到该对象了。

            var name = 'window';
            var obj = {
                name:'obj',
                getFn:function(){
                    var that = this;
                    return function(){
                        return that.name + this;
                    }
                }
            };
         //该函数的this还是指向window
            console.log(obj.getFn()());// obj[object Window]
  • 相关阅读:
    知足老师对于脚跟酸经验
    《伤寒论》理论的临床应用--朱良春
    大便秘结案
    胃脘不适论治
    杏林集叶效方
    腰痛案(知足老师论辩证之重要性)
    小儿外感治疗误区
    小儿外感咳喘案
    漫谈凭脉用药--何少奇
    咽部不适案
  • 原文地址:https://www.cnblogs.com/xinup/p/4771331.html
Copyright © 2020-2023  润新知