お世話になります。
現在、オライリーのシングルページWEBアプリケーションという本で学習中なのですが、
その文中に理解できない部分がありましたので、質問します。
function first() { var first_var = 'first'; second();//[1] } function second() { var second_var = 'second'; console.log(first_var, second_var); } first();
本文では上記のようなコードの場合で[1]のsecond関数を呼び出すと、first関数の実行コンテキスト内に新しい実行コンテキストを生成する。そしてsecond関数はfirst関数の実行コンテキスト内で呼び出されているので、first関数内の実行コンテキストの変数にアクセスできる。
という記載があるのですが、私は変数のスコープはそれを定義したコンテキストに依存すると考えていたので、ここの説明に混乱しています。実際に上記のコードではエラーがでます。
ただ、本文内では実際のスコープチェーンには上記の実行コンテキストとは微妙な違いがあると記載されているので、実際の処理とは違うものとして説明しているのかもしれないですが、確証がもてません。
どなたかこのあたりの仕組みについて教えていただけますでしょうか。
同様の本をお持ちの方向けにですが、上記の記載はp39あたりにあります。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/26 10:55
2017/12/26 11:11
2017/12/27 00:43