zoukankan      html  css  js  c++  java
  • javascript 关于 this 作用域链

    使用 function f() {}  或者 var f = function() {}  来定义的函数,this 是指向 全局对象

     
    var  a = {
       b: 1,
       c: function(){
          function d() {
             alert(this.b);
          };
          d();
       }
    };
     
    javascript机制会在此函数里寻找b,发现此函数没有b,于是通过作用域链找到c方法,在里面也没有找到b,于是输出undefined(因为这个匿名函数不属于a对象,只不过是c方法属于a对象,所以作用域链是不会链接到a对象的,而是指向全局对象)
     
     
    var  a = {
       b: 1,
       c: function(){
          var that = this;
          function d() {
             alert(that.b);
          };
          d();
       }
    };
     
    修改后输出  1 ,that缓存了c 方法的作用域链
  • 相关阅读:
    将个人博客与github关联
    docker镜像制作
    perf命令
    vmstat命令
    ps命令
    top命令
    linux查看当前用户登陆信息
    .NET CORE应用程序启动
    WebAPI简介
    Redis-位图
  • 原文地址:https://www.cnblogs.com/chuangweili/p/5159670.html
Copyright © 2011-2022 走看看