๋ค์๊ณผ ๊ฐ์ด ์์ฑ์ ํจ์ ๋ด์์ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ๋ฑ๋กํด์ฃผ๊ณ ์ฝ๋ฐฑ ํจ์๋ก ํด๋์ค ๋ด์ ๋ฉ์๋๋ฅผ ์ธ์๋ก ๋๊ฒจ์ฃผ์๋ค. ํ์ง๋ง OnClick ๋ฉ์๋ ๋ด์์์ this๋ Field ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ์ง ๋ชปํ๊ณ undefined๋ฅผ ๋ฐ์ธ๋ฉ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค. (2021.3.17) onClick์ ์ฝ๋ฐฑํจ์์ด๊ธฐ ๋๋ฌธ์ ๊ณ ์ฐจ ํจ์ ๋ด์์ ์ผ๋ฐ ํจ์๋ก ํธ์ถ์ด ๋๋ค. ์ผ๋ฐ ํจ์์ this๋ ์ ์ญ ๊ฐ์ฒด๊ฐ ๋ฐ์ธ๋ฉ๋์ง๋ง class ๋ด์ ๋ชจ๋ ์์ค ์ฝ๋์์ ๊ธฐ๋ณธ์ ์ผ๋ก 'strict mode'๊ฐ ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ undefined ๊ฐ ๋ฐ์ธ๋ฉ๋๋ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ๊ฒ์ด๋ค. (2021.7.25)์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ํตํด ํธ์ถ๋๋ ์ฝ๋ฐฑ ํจ์์ this๋ currentTarget, ์ฆ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ธ๋ฉํ DOM ์์๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ..
๋ชจ๋ํ๋ฅผ ์ํด ๋ค์๊ณผ ๊ฐ์ด button ํ๊ทธ์ ํด๋์ค ์ดํธ๋ฆฌ๋ทฐํธ์ธ btn์ ๋ ธ๋ ์์ฑ๊ณผ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ๋ฑ๋ก์ Button ํด๋์ค ๋ด์ ์์ฑ์์ ์ ์ธํ์ฌ ์ฃผ์๋ค. btn ์์์ ์ง์ ์ ์ผ๋ก addEventListener์ ๋ฑ๋กํ์ง ์์์์๋ ์ฝ์์ Hello๊ฐ ์ถ๋ ฅ๋๋ค. ์์ ๋์ ๋ฐฉ์์ ์ดํดํ๊ธฐ ์ํด์๋ ํฌ๊ฒ ๊ฐ์ง๊ฐ ํ์ํ๋ค. 1. this ๋ฐ์ธ๋ฉ this๋ ์๊ธฐ ์ฐธ์กฐ ๋ณ์๋ก์, ์์ ์ด ์ํ ๊ฐ์ฒด ๋๋ ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ์ฌ๊ธฐ์ ์์ฑํ ์ธ์คํด์ค๋ btn์ ๊ฐ๋ฆฌํค๋ฉฐ ํจ์ ํ๊ฐ ๊ณผ์ ์ด ๋๋๊ณ ์ค์ ์ฝ๋๊ฐ ์คํ๋ ๋ ๋ฐ์ธ๋ฉ๋๋ค. 2. constructor ์์ฑ์ ํจ์ constructor ์์ฑ์ ํจ์๋ ํจ์ ๋ด์ ์ฝ๋์๋ค์ ์ด๊ธฐํ ํด์ฃผ๊ณ ์๋ฌต์ ์ผ๋ก this, ์ฆ ์ธ์คํด์ค๋ฅผ ๋ฐํํ๋ค. 3. ๊ฐ๋น์ง ์ปฌ๋ ์ ..
moudle.exports === exports === {๊ฐ์ฒด} moudle.exports์๋ ์ด๋ค ๊ฐ์ด๋ ๋์ ํด๋ ๋์ง๋ง, exports์ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๊ฐ์ฒด๋ฅผ ์ง์ ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ๊ฐ์ฒด์ฒ๋ผ ์์ฑ๋ช ๊ณผ ์์ฑ๊ฐ์ ๋์ ํด์ผ ํ๋ค. ๋ฐ๋ผ์ ์์ ๊ฐ์ด ํจ์๋ฅผ ๋์ ํ๋ ๊ฒฝ์ฐ์๋ module.exports๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ๋ํ exports์ module.exports์๋ ์ฐธ์กฐ ๊ด๊ณ๊ฐ ์์ผ๋ฏ๋ก ํ ๋ชจ๋์ ๋์์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
Window load ํฌ๊ฒ ๋ค ๊ฐ์ง์ API๊ฐ ์๋ค. 1. DOMContentLoaded: HTML ํ์ฑ๋ง ์๋ฃ๋๋ฉด ์ฝ๋ฐฑ ํจ์๋ฅผ ํธ์ถ ๋ฐ ์คํ ๊ฐ๋ฅํ๋ค. 2. load: css ๋ฐ image ๋ฑ๊ณผ ๊ฐ์ ๋ฆฌ์์ค ํ์ผ๋ค์ด ๋ชจ๋ ์๋ฃ๋ ๋ค์ ํธ์ถ ๋ฐ ์คํ ๊ฐ๋ฅํ๋ค. 3. beforeunload: ํ์ฑ์ด ๋ชจ๋ ์๋ฃ๋๊ธฐ ์ ์ ์๊ธฐ์น ๋ชปํ ๋ณ์(์นํ์ด์ง์ ์ด๊ธฐํ ๋ฑ)๊ฐ ์๊ธธ ๋ ํธ์ถ ๋ฐ ์คํ ๊ฐ๋ฅํ๋ค. 4. unload: css ๋ฐ image ๋ฑ๊ณผ ๋ฆฌ์์ค ํ์ผ๋ค์ ๋ถ๋ฌ์ค๋๋ฐ์ ์คํจํ์์๋ ํธ์ถ ๋ฐ ์คํ ๊ฐ๋ฅํ๋ค. ๋ ๋๋ง์์ง๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ณ๋ ฌ์ ์ผ๋ก ํ์ฑ์ ์คํํ์ง ์๊ณ ์ง๋ ฌ์ ์ผ๋ก ์ํํ๋ ๋๊ธฐ์ ์ธ(synchronous) ์ฑํฅ์ ์ง๋๋ค. ์ฆ, script ํ๊ทธ ์์น์ ์ํด ๋ธ๋กํน์ด ๋ฐ์ํ ์ ์๋ค(์ข ์์ ์ด๋ค)..
๋ค์๊ณผ ๊ฐ์ ํจ์ ์ฝ๋๊ฐ ์ด๋ค ์์๋๋ก ์ถ๋ ธ๋๋์ง ์ฝ ์คํ, ๋ฐฑ๊ทธ๋ผ์ด๋, ๋ฐ์คํฌ ํ, ์ด๋ฒคํธ ๋ฃจํ๋ฅผ ํตํด ์ดํด๋ณด๊ณ ์ ํ๋ค. 1. ์ฒ์ ์ฝ ์คํ(์คํ์ปจํ ์คํธ)์๋ ํฌ๋กฌ์ ์ ์ญ ์ปจํ ์คํธ์ธ anoymous ํจ์๊ฐ ๋์จ๋ค. 2. setTimeout ํจ์๋ ๋น๋๊ธฐ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ ์คํ์ปจํ ์คํธ์ ์ฌ๋ผ๊ฐ ๋ค, ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ๋์ด๊ฐ๋ค. (์ด๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์๋ ์ ๋ฌ ๋ ์นด์ดํธ ์๊ฐ ๋ฉ์ถ์ง ์๊ณ ๋์ ์คํ์ด ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ์์ฒด๋ ์ฑ๊ธ ์ค๋ ๋ ํ์์ผ๋ก ๋์ํ์ง๋ง ๋ฐฑ๊ทธ๋ผ์ด๋์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ด์์ฒด์ ๋ฐ C++์ ์ํด ๊ด๋ฆฌ๊ฐ ๋๋ฏ๋ก ๋ฉํฐ ์ค๋ ๋๊ฐ ๊ฐ๋ฅํ๋ค.) 3. ์ฝ ์คํ์ ๋ง์ง๋ง์ผ๋ก ๋จ์ anoymous๊ฐ pop๋์ด ์ข ๋ฃ๊ฐ ๋๋ฉด, ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋๊ธฐ ์ค์ด๋ setTimeout ํจ์๊ฐ ๋ฐ์คํฌ ํ๋ก ๋์ด๊ฐ๊ฒ ๋๋ฉฐ ์ด๋ฒคํธ ๋ฃจํ..