Q. ํ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๊ฐ ๋ฉํ ๋๊ป์ ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ํด์ฃผ์ จ๋๋ฐ addEventListener๋ฅผ ์์ฑํ๊ณ removeEventListener๋ฅผ ํด์ฃผ๋ผ๊ณ ํ์ จ๋๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๋๋ฌธ์ด๋ผ๊ณ ํ์ จ๋๋ฐ ๊ทธ๋ ๊ฒ ํฐ ์ฐจ์ด๊ฐ ์๋์?
A. ํ์ด์ง๋ DOM์ ์์ ๋๊ฐ๋๊ฑฐ๋ฉด ์๊ด์๊ณ SPAํน์ฑ์ด๋ผ์ ํด์ฃผ๋๊ฒ ์ข๋ค.
๋์ถฉ SPA๋ ํ์ด์ง๋ฅผ ๋๊ฐ์ง ์๊ธฐ๋๋ฌธ์ ์ด๋ฒคํธ๋ฆฌ์ค๋๊ฐ ์์ด๊ฒ๋ผ์ ๋ ํ๊ฐ์ง ์ด๋ฒคํธ๋ง ์คํ์ํค๋ฉด ๋๋๋ฐ ๋ค๋ฅธ ์ด๋ฒคํธ๋ฆฌ์ค๋๊ฐ ํญ์ฃฝ๋์ดํ๋ฉด์ ๋๋ฅํ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธธ ์ ์๋ค.
dom๊ณผ event listener๊ฐ ์ํธ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ ์ญ์ ํด์ฃผ์ง ์์ผ๋ฉด ์ํธ ์ฐธ์กฐ๋ก reference count๊ฐ 0์ด ๋์ง ์์์ ์๊ตฌํ ๋จ๋ ๋ฌธ์ ๊ฐ ์๋ค.
addEventListenr(name, function)์ ํธ์ถํ๋ฉด ์์คํ
๋ด๋ถ์ ํด๋น ์ด๋ฒคํธ ํธ์ถ์ด ๋ฐ์ํ ๊ฒฝ์ฐ listeners ๋ชฉ๋ก์ ๋๋ฉด์ ์ด๋ฒคํธ๋ฅผ ๊ฐ listener์๊ฒ ํฌ์ฌํด์ค๋ค.
๊ทธ๋์ function์ด ํธ์ถ๋๋ ๊ฑด๋ฐ, ์ด addEventListener๋ฅผ ํ๊ณ removeEventListener์ ์ํ๋ฉด internal์ ๊ณ์ listeners ๋ชฉ๋ก์ด ์ฆ๊ฐํ๊ฒ ๋๋ค
๋ง์ฝ ์์ฃผ ์ฐ์ด๋ ์ปดํฌ๋ํธ์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฉด ์์๊ฐ์ listeners ๋ชฉ๋ก์ด ์ฆ๊ฐํ์ฌ ์ฑ๋ฅ ์ ํ ๋ฑ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์ด์ ๋ฐ๋ผ removeEventListener๋ก ๋ฑ๋ก๋ listener์ ์ญ์ ํด์ค์ผ ํ๋ค.
'Front-End > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ์ฒด ๋ฆฌํฐ๋ด (1) | 2023.02.03 |
---|---|
ํ์ ๋ณํ๊ณผ ๋จ์ถ ํ๊ฐ (0) | 2023.01.27 |
๊ณ ์ ํ id ์์ฑํ๊ธฐ (0) | 2023.01.08 |
์ ์ด๋ฌธ (1) | 2023.01.06 |
์ฐ์ฐ์ (0) | 2022.12.30 |