日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

执行上下文(Exection Contexts)

發(fā)布時間:2025/3/17 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 执行上下文(Exection Contexts) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

知識點:

  • 執(zhí)行上下文(EC)是ECMA-262標準的一個抽象概念,沒有從技術實現(xiàn)的角度定義標準類型和結構,不同于可執(zhí)行代碼概念。每當控制器轉到ECMAScript可執(zhí)行代碼的時候,就會產生一個EC;

  • 活動的執(zhí)行上下文在邏輯上組成了一個堆棧;

  • 堆棧底部永遠是全局上下文(global context),而頂部是當前的活動的執(zhí)行上下文;

  • 全局上下文(全局代碼-globalContext)是在程序級處理的,如外部加載的js文件或者本地script標簽內的代碼,不包含function內的代碼。在程序啟動階段,堆棧內會自動將gobalContext壓在最下面;

  • 函數代碼:每次進入function(即使function被遞歸調用或者作為構造函數)的時候(這里了指的是類型為function的函數,不包含函數內部的fuction),產生的執(zhí)行上下文就會被推入這個堆棧,執(zhí)行完后就會被彈出該堆棧,棧指針也會自動移動位置;

  • Eval代碼:調用Eval代碼所在的上下文,如果在全局則callingContext:globalContext,如果在xxx函數內則callingContext:<xxx>functionContext;

  • 執(zhí)行上下文包含:變量對象(VO)、this指針(this)和作用域鏈(Scope Chain),根據現(xiàn)實還可以具有任意額外屬性(例如:withObject | catchObject);

  • 如果一個拋出的異常沒有被截獲的話,也有可能從一個或者多個執(zhí)行上下文中退出;

  • 等相關代碼執(zhí)行完后,邏輯堆棧只會包含全局上下文,一直到整個程序結束。

  • 理解:

    每當執(zhí)行代碼就會產生一個執(zhí)行上下文,該執(zhí)行上下文會被推進一個堆棧內處理,處理完了彈出來,根據代碼的不同,產生的上下文也不同,但堆棧底部永遠是全局上下文。用偽代碼比較好理解這個不同如下:



    ?

    轉載于:https://my.oschina.net/Karon/blog/495476

    總結

    以上是生活随笔為你收集整理的执行上下文(Exection Contexts)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。