zoukankan      html  css  js  c++  java
  • 【求助】一道有关于执行上下文的前端问题

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

    首先,题目如下:

    一共有两个文件  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过不去,而参数过去了,原理是什么呢?在线等大佬指点

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

  • 相关阅读:
    沙尘天气,但还是要坚持锻炼
    为了欧冠,堕落两天
    NRF24L01测试板子完成了
    昨天参加ti的研讨会了
    自我安慰一下
    功率W与dBm的对照表及关系
    短时间提高英语口语方法
    看了一个星期的欧洲杯,熬阿
    最近比较忙,项目较累
    后台获取js赋给服务器控件的值
  • 原文地址:https://www.cnblogs.com/suihang/p/11342707.html
Copyright © 2011-2022 走看看