<ul id="list">
<li><button></button></li>
<li><button></button></li>
</ul>
const list = document.getElementById('list');
list.addEventListener('click', function(event) {
if (event.target.tagName === 'BUTTON') {
console.log(event.target.textContent + ' clicked');
}
});
let title = "Title";
function test() {
console.log(title); // Title
}
test();
console.log(title); // Title
function myFunction() {
let title = "Title";
console.log(title); // Title
}
myFunction();
console.log(title); // ReferenceError
function createCounter() {
let count = 0;
return function() {
count++;
return count;
};
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
렉시컬 환경은 함수가 생성될 떄의 스코프, 변수와 함수의 유효성 결정
클로저는 내부 함수가 외부 함수의 렉시컬 환경을 기억하여 외부 변수에 접근 할 수 있도록 해준다.
스코프, 클로저, 렉시컬 환경 세가지 다 변수와 함수의 유효성을 관리하고 서로 밀접한 관계라는것을 배웠고 비슷하면서도 다른 역할이기에 헷갈리는 부분이 있어 여러번 개념을 익혀야겠다.