• 【求助】一道有关于执行上下文的前端问题


    各位老铁们,我胡汉三今天很不开心,为啥呢,因为今天看到了一个问题,在网上找了好久都没找到详细的解释,百爪挠心啊,希望有前端大腿来帮帮忙

    首先,题目如下:

    一共有两个文件  one.js和two.js

    one.js

    two.js

    然后用node执行 two.js,输出结果为何?

    我一开始想的是:  输出  1 和 undefined

    实际结果为: 2 和 a is not defined

    我来说一下之前的想法,之前写在一个文件的时候,如:

     

    结果为:2 和 1

    之前理解是这样的,函数内部没有a和b变量,便通过作用域链向上查找,找到了a=1 和 b=2

    按照这个思路,第一个题输出的1和undefined,但是现在结果却是2和a is not defined,

    我去网上搜了搜一些解释,没找到,只知道造成这个结果的原因时由于执行上下文的切换机制导致的。

    我现在是这木理解的,当two.js执行到foo()时,执行上下文就切换到了one.js的上下文,在该上下文中并没有a的定义,所以a is not defined,希望有大佬可以指定一下

    对了,后来我又改了一下

    one.js

    two.js

    用node执行two.js

    结果为: 2    333    a is not defined

    这里我又有一个问题,当two.js执行到foo()时,执行上下文切换到one.js的上下文时,参数也跟着传过去了,为啥a过不去,而参数过去了,原理是什么呢?在线等大佬指点

    想不出来百爪挠心是真的难受,求解救啊

  • 相关阅读:
    Win7下VS2010、IIS7配置常见问题收集
    ASP.NET 4.0尚未在 Web 服务器上注册 解决方法
    jQuery
    玩转OpenStack
    ubuntu14.04开启root用户 设置root密码 配置国内镜像源 设置分辨率
    JavaScripts基础
    css
    微信小程序Nginx环境配置
    html语言
    Python并发编程-redis-3.0.5 源码安装
  • 原文地址:https://www.cnblogs.com/suihang/p/11342707.html
Copyright © 2020-2023  润新知