でんしけんびきょう
1136 ワード
name = 'nero'
wrapper関数のscopeでvarnameを探して、うん?いいえ.グローバルにvarnameがあるので、nameをneroに変更する必要があります.
それからlog関数を呼び出して、log関数のscopeの中でvarnameを探して、いいですか?いいえ.グローバルなvarnameをコンソールに出力するには~
だから
でもvarを加えると?
同じ手順でwrapper関数のscopeでvarを検索し、scope内のnameをneroに変更します.したがって、グローバルなvarname='zeroは触られません!
次にlog関数を呼び出し、log関数のscopeに移動し、コンソールに移動します.ロゴを作るときはvarnameはありませんよね?上にいるの?全ドメインにvarnameが0の値があるんだな~これを出力するぞ~
したがって、ゼロが出力される
LexicalScope=静的Scopeコードが書かれた瞬間にScopeが確定
コード自体がコードです.
機能が同じだからといって置き換えてはいけない.
log関数はconsoleです.log(name)を作るのでlog()はconsoleロゴを言うと大変なことになります!
logのnameはパッケージのvarnameの影響を受けません
functionもvarと同じように動作し、同じくScopeが適用されました!!
この方式は静的走査,Lexical走査である.
コード作成時に値が固定されるため、静的スキャン
ダイナミックスキャンは、最近実行された関数のスキャンに従います.
ダイナミックスキャンの場合、logはパッケージのスキャンに従います.
Reference
この問題について(でんしけんびきょう), 我々は、より多くの情報をここで見つけました https://velog.io/@taehyunkim/렉시컬-스코프テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol