Jay
a. ์ดํธ๋ฆฌ๋ทฐํธ ๋ฐฉ์ : ์ดํธ๋ฆฌ ๋ทฐํธ์ ๊ฐ์ผ๋ก ํจ์ ํธ์ถ๋ฌธ ๋ฑ์ ๋ฌธ์ ํ ๋นํ๋ฉด ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ๋ฑ๋ก๋๋ค.
์ฃผ์ํ ์ ์ ํจ์ ์ฐธ์กฐ๊ฐ ์๋ ํธ์ถ๋ฌธ์ ํ ๋นํ ๊ฒ์ด๋ค. ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ฑ๋ก์ด๋ ํจ์ ํธ์ถ์ ๋ธ๋ผ์ฐ์ ์ ์์ํ๋ ๊ฒ์ผ๋ก, ๋ฑ๋ก์ ์ฝ๋ฐฑํจ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ํจ์ ์ฐธ์กฐ๋ฅผ ๋ฑ๋กํด์ผ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ํธ์ถํ ์ ์๋ค. ๋ง์ฝ ์ฐธ์กฐ๊ฐ ์๋ ํธ์ถ๋ฌธ์ ๋ฑ๋กํ๋ฉด, ํธ์ถ๋ฌธ์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ก ๋ฑ๋ก๋๋ค. ํจ์๋ฅผ ๋ฐํํ๋ ๊ณ ์ฐจ ํจ์ ํธ์ถ๋ฌธ์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ก ๋ฑ๋กํ๋ค๋ฉด ๋ฌธ์ ๊ฐ ์๊ฒ ์ง๋ง, ๊ฐ์ ๋ฐํํ๋ ํจ์ ํธ์ถ๋ฌธ์ ๋ฑ๋กํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ํธ์ถํ ์ ์๋ค. ; ์ผ๋ก ์ฌ๋ฌ ๊ฐ ํธ๋ค.. ๊ฐ๋ฅ
b. ์ด๋ฒคํธ ํธ๋ค๋ฌ ํ๋กํผํฐ ๋ฐฉ์:
dom ๋
ธ๋ ๊ฐ์ฒด๋ ์ด๋ฒคํธ์ ๋์ํ๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ด์ ํจ์๋ฅผ ๋ฐ์ธ๋ฉ ํ๋ฉด ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ๋ฑ๋ก๋๋ค. ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ ์ด๋ฒคํธ ํ๊น์ด๋, ์ ํ๋ ์ด๋ฒคํธ๋ฅผ ์บ์นํ DOM ๋
ธ๋ ๊ฐ์ฒด์ ๋ฐ์ธ๋ฉ
ํ๋ค. ํ์ง๋ง, ์ด๋ฒคํธ ํธ๋ค๋ฌ ํ๋กํผํฐ์ ํ๋์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ง ๋ฐ์ธ๋ฉ ํ ์ ์๋ค๋ ๋จ์ ์ด ์๋ค.
c. add EventListener ๋ฉ์๋ ๋ฐฉ์:
๋ง์ง๋ง ๋งค๊ฐ๋ณ์์๋ ์ด๋ฒคํธ๋ฅผ ์บ์นํ ์ด๋ฒคํธ ์ ํ๋จ๊ณ (์บก์ณ๋ง ๋๋ ๋ฒ๋ธ๋ง)์ ์ง์ ํ๋ค. ์๋ตํ๊ฑฐ๋ , false๋ฅผ ์ง์ ํ๋ฉด ๋ฒ๋ธ๋ง ๋จ๊ณ์์ ์บ์นํ๊ณ (default) , true ์ด๋ฉด ์บก์ณ๋ง ๋จ๊ณ์์ ์ด๋ฒคํธ๋ฅผ ์บ์นํ๋ค. ์ด๋ ํ๋ ์ด์์ ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ฑ๋ก ๊ฐ๋ฅํ๋ค. (q. ๋จ ์ฐธ์กฐ๊ฐ ๋์ผํ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์ค๋ณต๋ฑ๋กํ๋ฉด ํ๋์ ํธ๋ค๋ฌ๋ง ๋ฑ๋ก..) ์ฐธ์กฐ ๋์ผ โ 1, 2,3 ์ด ๋ค ๋๊ฐ์ ๊ฐ์ ํ ๋น.. ?์์ ์นดํผ๋ณธ ํ ๋น์.. ํ๋๋ง ์ํ..
target : ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ ๋ ์์
current target: ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ๋ฐ์ธ๋ฉ๋ dom ์์
์ผ๋ฐ์ ์ผ๋ก ๋์ผํ ๋ ์์๋ฅผ ๊ฐ๋ฆฌํค์ง๋ง, ๋์ค์ ์ด ํด๋ณธ ์ด๋ฒคํธ ์์์์๋ ๊ฐ์ฒด์ target ํ๋กํผํฐ์ currentTargetํ๋กํผํฐ๊ฐ ์๋ก ๋ค๋ฅธ ๋ ์์๋ฅผ ๊ฐ๋ฆฌํฌ ์ ์๋ค. ex) ๊ตฌํ ์ ๋ฐ๊นฅ์ชฝ overlay ๊ตฌํ.. ์์์ด ์ฌ๋ฌ๊ฐ์ผ ๊ฒฝ์ฐ ์ด๋ฒคํธ๋ฅผ ๋ถ๋ชจ์๊ฒ ์์ํด์..
stop propagation โ ๋ฒ๋ธ๋ง๋ง๊ธฐ. ์บก์ณ๋ง์ ๋ง๋ ์ผ์ด์ค๋ ๋ณ๋ก ์์.
(์๋์ฐ) ์บก์ณ๋ง โ ํ๊ฒ => ๋ฒ๋ธ๋ง
c.f) preventdefualt? ex. alink ์ฒ๋ผ ๋์ด๊ฐ๋๊ฑฐ ๋ง๊ธฐ.. (๋ธ๋ผ์ฐ์ ๋ํดํธ ์ก์ )
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<button class="button1">0</button>
<button class="button2">0</button>
<script>
const $button1 = document.querySelector(".button1");
const $button2 = document.querySelector(".button2");
$button1.onclick = function (e) {
++this.textContent;
};
$button2.addEventListener("click", (e) => {
++this.textContent;
});
</script>
</body>
</html>
() โ {} ์ ๊ฒฝ์ฐ์ ์๋์ฐ ๊ฐ์ฒด๊ฐ this!!! ๋ฐ๋ผ์ count๊ฐ ์์ฌ๋ผ๊ฐ.
ํจ์๊ฐ ์๋ ๊ฐ ์์ฒด๊ฐ ํ ๋น๋์./ ๋ฐ๋ก ์คํ. ์ฝ์ ์ฐํ๋ฒ์...