zoukankan      html  css  js  c++  java
  • js 函数的执行过程

      当某个函数第一次被调用时,会创建一个执行环境(execution context)及相应的作用域链,并把作用域链赋值给一个特殊的内部属性(即 [[Scope]])。

      但在作用域链中,外部函数的活动对象始终处于第二位,外部函数的外部函数的活动对象处于第三位,……直至作为作用域链终点的全局执行环境。

      然后,使用 this、arguments 和其他命名参数的值来初始化函数的活动对象(activation object)。

      当第一次调用 compare() 时,会创建一个包含 this、arguments、value1、value2 的活动对象。

      全局执行环境的变量对象(包含 this、result 和 compare) 在 compare() 执行环境的作用域链中则处于第二位。

      后台的每个执行环境都有一个表示变量的对象——变量对象。全局环境的变量对象始终存在,而像 compare() 函数这样的局部环境的变量对象,则只在函数执行的过程中存在。

      当函数执行完毕,局部活动对象就会被销毁,内存中仅保存全局作用域(全局执行环境的变量对象)。

  • 相关阅读:
    [codevs]失恋28天题目系列
    [NOIP1998]最大数
    [codevs4247]奇特的生物
    [codevs1380]没有上司的舞会
    [codevs2152]滑雪
    [codevs2171]棋盘覆盖
    [codevs2170]悠闲的漫步
    [codevs1557]热浪
    [codevs1554]最佳课题选择
    nodejs建站+github page 建站问题总结
  • 原文地址:https://www.cnblogs.com/guofan/p/14577871.html
Copyright © 2011-2022 走看看