• js中的this关键字


    this是一个关键字,不是变量,也不是属性名。javascript的语法不允许给this赋值。和变量不同,关键字this没有作用于的限制,嵌套的函数不会从调用它的函数中(即上一层函数)继承this。

      1、如果嵌套函数作为方法调用,其this的值指向调用它的对象;

      2、如果嵌套函数作为函数调用,其this值不是全局对象(非严格模式下)就是undefind(严格模式下);

    很多人误以为,调用嵌套函数时this会指向调用外层函数的上下文。

    如果你想访问这个外部函数的this值,可将this的值保存在一个变量里,这个变量和内部函数都同在一个作用域内,通常使用变量self来保存this,比如:

    例子1:

     var o={                //对象o

      m:function(){           //对象中的方法m

        var self=this;         //将this值保存在一个变量中

        console.log(this===o);    //输出true,this就是指对象o

        f();              

        function f(){         //在方法m内部定义一个嵌套函数f

          console.log(this===o);  //"false":this的值是指向全局对象或者undefined

          console.log(self===o);  //"true":self指向外部函数的this值

        }

      }

    };

    例子2:

    var name = "The Window";   
      var object = {   
        name : "My Object",   
        getNameFunc : function(){   
          return function(){   
            return this.name;   
         };   
        }   
    };   
    alert(object.getNameFunc()());  
    //输出结果为:The Window

  • 相关阅读:
    vim 的配置文件
    linux bash 的自动补全
    linux ping 命令
    linux 安装ifconfig
    dos exist 命令
    linux 用户的添加,组的添加,以及查看
    if else 的.bat 文件
    For 的.bat文件
    rmdir 的.bat文件
    dos set 命令
  • 原文地址:https://www.cnblogs.com/huan-lin/p/3696430.html
Copyright © 2020-2023  润新知