zoukankan      html  css  js  c++  java
  • 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]
  • 相关阅读:
    loadrunner下检查点乱码情况处理
    Linux下安装loadrunner步骤及遇到的问题
    当你决定不再在乎的时候,生活就好起来了
    受难语录
    LoadRunner--内存指标介绍
    Microsoft Visual Studio Web 创作组件安装失败的解决方法
    (六)微服务分布式云架构spring cloud
    (五)微服务分布式云架构
    (四)微服务分布式云架构
    (三)微服务分布式云架构
  • 原文地址:https://www.cnblogs.com/xinup/p/4771331.html
Copyright © 2011-2022 走看看