zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    安卓系统隐藏滚动条
    jquery 失去焦点时输入框为空时自动填写默认内容
    移动端左右滑动代码
    [转]C#使用FFmpeg 将视频格式转换成MP4示例
    [转]Windows 使用ffmpeg将MP4视频转换为m3u8格式
    [转]搭建flutter开发环境
    [转]ios webview下纯JS实现长按
    [转]SQLServer查询数据库各种历史记录
    [转]Java多线程学习(总结很详细!!!)
    [转]安卓加固之so文件加固
  • 原文地址:https://www.cnblogs.com/huan-lin/p/3696430.html
Copyright © 2011-2022 走看看