問題タブ [executioncontext]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - javascript での実行コンテキスト スタックの比較
厳密モードを使用しています。同じ関数への 2 つの呼び出しが同じ実行コンテキスト スタックで行われたかどうかを比較したい。
例 1: 2 つの独立したイベント ハンドラー A と B が起動し、それぞれが C を呼び出した場合、C への呼び出しが異なる実行コンテキスト スタックで行われたことを知りたい。
例 2: 関数 A が C を呼び出し、B を呼び出し、B が再び C を呼び出した場合、C への 2 つの呼び出しが同じ実行コンテキスト スタックで行われたことを確認したいと思います。
私は Javascript でアプリケーション トランザクションを実装しており、ネストされたトランザクションをサポートできるようにしたいので、この動作が必要です。厳密なコードを書いているので、引数、呼び出し先、呼び出し元オブジェクトを使用しないソリューションを探しています。
また、A、B、C はすべて非同期である可能性があり、C は呼び出し時にすぐに完了まで実行されないことに注意してください。これが、以下で説明するカウンターの使用が非同期シナリオで機能しない理由です。
C は非同期です。カウンターを使用すると、2 つの独立したイベント ハンドラーが C を呼び出し、どちらかがカウンターをデクリメントする機会を得る前に、どちらもカウンターをインクリメントすることを意味します。
javascript - スレッド化された言語での JavaScript の実行 VS アプリケーション コンテキスト?
メモリ内での実装に関して、スレッドとは何かを視覚化しようとしています。私は com-sci のバックグラウンドを持っていないので、基本的な理解の誤りをお詫びします (そのような誤りを指摘してください)。
プロセスの私の理解は、いくつかの「サブ」ボックス化されたスレッドを含むメモリ内の「ボックス化された」領域です。私が見た役立つSOの回答は次のとおりです。プロセスとスレッドの違いは何ですか? これについて。
JavaScript プロセスが 1 つのスレッドのみを包含することはわかっていますが、これらの「ボックス化された」メモリ空間、つまり、親スコープにアクセスできるメモリをカプセル化する実行コンテキストがまだあることを知っています。
たとえば、application context
Androidアクティビティに渡されることについての私の理解は、それがプロセスのメモリ環境の「スナップショット」であることです(プロセスのすべてのスレッドとプロセスの一部を想像します)。新しい箱。
上記が正しければ、概念的に言えば、JavaScript 実行コンテキストとスレッド化された言語コンテキストのアプリケーション コンテキストは、どちらもさらなる作業のための環境であるメモリ空間を参照するという点で同等であると言えます。
javascript - JavaScript の実行コンテキストの実装はヒープ領域の例ですか?
概念的に、JavaScript で実行コンテキストを作成するためにメモリに格納されるデータ要件は、ヒープ スペースの例と見なされますか?
私の理解では、フレームが JavaScript のコール スタックに追加されると、実行コンテキストがヒープ スペースに作成されます。
これは正しいです?
javascript - JavaScript の実行コンテキストとオブジェクト
私が理解していないJSのオブジェクト、実行コンテキストについて何かがあります。
オブジェクトを作成すると、実行コンテキストが作成されますか? 関数が呼び出されると実行コンテキストが作成されるためです。そうでない場合、オブジェクトは実際の実行コンテキストの other 変数と同じですか?
ありがとうございました。