ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ค์๊ณผ ๊ฐ์ด ์์ฑ์ ํจ์ ๋ด์์ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ๋ฑ๋กํด์ฃผ๊ณ ์ฝ๋ฐฑ ํจ์๋ก ํด๋์ค ๋ด์ ๋ฉ์๋๋ฅผ ์ธ์๋ก ๋๊ฒจ์ฃผ์๋ค.
ํ์ง๋ง OnClick ๋ฉ์๋ ๋ด์์์ this๋ Field ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ์ง ๋ชปํ๊ณ undefined๋ฅผ ๋ฐ์ธ๋ฉ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค.
(2021.3.17) onClick์ ์ฝ๋ฐฑํจ์์ด๊ธฐ ๋๋ฌธ์ ๊ณ ์ฐจ ํจ์ ๋ด์์ ์ผ๋ฐ ํจ์๋ก ํธ์ถ์ด ๋๋ค. ์ผ๋ฐ ํจ์์ this๋ ์ ์ญ ๊ฐ์ฒด๊ฐ ๋ฐ์ธ๋ฉ๋์ง๋ง class ๋ด์ ๋ชจ๋ ์์ค ์ฝ๋์์ ๊ธฐ๋ณธ์ ์ผ๋ก 'strict mode'๊ฐ ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ undefined ๊ฐ ๋ฐ์ธ๋ฉ๋๋ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ๊ฒ์ด๋ค.
(2021.7.25)์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ํตํด ํธ์ถ๋๋ ์ฝ๋ฐฑ ํจ์์ this๋ currentTarget, ์ฆ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ธ๋ฉํ DOM ์์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด ์ธ ๊ฐ์ง์ ๋ฐฉ๋ฒ์ด ์์๋ค.
1. bind() ๋ฉ์๋๋ฅผ ์ฌ์ฉ
๋ช ์์ ์ผ๋ก ์ธ์คํด์ค์ ๋ฉ์๋์ this๋ฅผ ๋ฐ์ธ๋ฉํด์ฃผ๊ณ ์ด๋ฅผ ์ฝ๋ฐฑํจ์๋ก ๋๊น.
2. ํ์ดํ ํจ์๋ก wrapperํ๊ณ ๊ฑฐ๊ธฐ์ OnClick()์ ํธ์ถํจ.
(2021.3.22) ํ์ดํ ํจ์๋ ํจ์ ์์ฒด์ this ๋ฐ์ธ๋ฉ์ ๊ฐ์ง ์๋๋ค. ํ์ดํ ํจ์ ๋ด๋ถ์์ this๋ฅผ ์ฐธ์กฐํ๋ฉด ์์ ์ค์ฝํ์ this๋ฅผ ๊ทธ๋๋ก
์ฐธ์กฐํ๋ค.
3. OnClick์ ํจ์ ๋ฆฌํฐ๋ด๋ก ํ ๋นํด ํด์ฃผ๋ ๋ฐฉ์
'JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์ ํ๊ฒฝ(setTimeout, Promise then, RequestAnimationFrame) (0) | 2021.03.11 |
---|---|
๋น๋ ํจํด(Builder Pattern)์ผ๋ก ๊ฐ์ฒด ์์ฑ์ ๋ช ์์ ์ด๊ณ ๊น๋ํ๊ฒ ๊ตฌํ (0) | 2021.03.11 |
ํด๋์ค ๋ด์์์ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ์ฒ๋ฆฌ (0) | 2021.03.09 |
module.exports์ exports์ ๊ด๊ณ (0) | 2021.02.28 |
์๋ฐ์คํฌ๋ฆฝํธ ํ์ฑ๊ณผ ์คํ (0) | 2021.02.28 |