私は現在スコープチェーンについて読んでおり、正しく理解しているかどうかを判断するために、概念の理解を言い換えたいと思いました。
私の理解はこれです:
- 新しい関数が初期化されると、この関数のオブジェクトが自動的に作成されます
- このオブジェクトには、その関数内で使用される変数を定義するプロパティがあります
- このオブジェクトは、作成済みのオブジェクトのチェーンに追加されます
- ネストされた関数がいくつかある場合、それらの関数はそれぞれ、スコープ チェーン内の階層オブジェクトを表します。ネストされた関数が深くなればなるほど、その関連オブジェクトはチェーンのさらに下に存在します。(変数を定義するオブジェクト)。
したがって、実際には、関数 1 に関数 2 が含まれ、関数 2 に関数 3 が含まれ、関数 3 が変数にアクセスしようとした場合、インタープリターはスコープ チェーンを上に移動し (独自のローカル スコープから開始)、この変数を見つけようとします。最上位の関数までそうし、最初に見つかったときに停止しますか?
ここで私が完全に間違ったツリーを吠えているのか、それとも私が一般的に正しい軌道に乗っているのかについて、洞察を与えていただければ幸いです。
ありがとう、ジョーダン