(JS) Scope Chain
3517 ワード
Scopeは上図のように階層を形成している.関数に囲まれていない最上位レベルのScopeをグローバルScopeと呼びます.
次に生成関数を基準としてScopeを形成する.
[親]グローバルScope-Person Scope-displayName Scope[子]
このScope層において最も重要な特徴は,下層Scope内部経路に上層からアクセスできないことである.逆に,下位層から上位層Scopeへの情報はアクセス可能である.(JavaScriptを習い始めたばかりの初心者にとって、これは最も重要な部分かもしれません...)
次に、実行文の場所に応じて、サブScopeから開始し、必要な値が見つかるまで親Scopeに移動します.
例1
let a = 1;
function foo () {
let a = 2;
console.log(a); // 로그 #1
}
foo();
console.log(a); // 로그 #2
ログ#1すなわち,Line 1のa変数宣言がなくても,Line 4のa変数情報を見つけることができない.
例2
function foo () {
let a = 2;
console.log(a); // 로그 #1
}
foo();
console.log(a); // 로그 #2
ログ#2このようにGlobal Scopeまで探索を続け、必要な人形が見つかれば探索を停止**
変数を宣言するときは、その変数を使用するscopeを正しく判断し、上司scopeに不要に宣言しないようにしてください.
Reference
この問題について((JS) Scope Chain), 我々は、より多くの情報をここで見つけました https://velog.io/@yunsungyang-omc/JS-Scope-Chainテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol