์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ OOP ์ธ์ด๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ถ๋ฅ ์์ฃผ ํด๋์ค ๋ฐฉ์์ ์ธ์ด์ธ JAVA์์ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ผ๋ณด๋ ๊ด์ ๊ณผ ์์ ํ ๋ค๋ฅด๋ค. ํนํ ๋ฌธ๋งฅ(context)์ ๋งค์ฐ ๊ฐ์กฐํ๋ ์ฒ ํ์ ๊ทผ๊ฑฐ์์ ๋ง๋ค์ด์ ธ ๋ ์์ปฌ ์ค์ฝํ์ ์ํ ํธ์ด์คํ ๊ณผ ์คํ ๋ฌธ๋งฅ์ ์ํ ๋ณต์กํ this๊ฐ ํ์ฐ์ ์ผ๋ก ๋ฐ์ํ ์๋ฐ์ ์์๋ค.
๋นํธ๊ฒ์ํ์ธ์ ๋ ๊ฐ์ง ์ด๋ก
1. ์๋ฏธ์ฌ์ฉ์ด๋ก : ๋จ์ด์ ์๋ฏธ๋ ‘์ํฉ๊ณผ ๋งฅ๋ฝ์ ์ํด์ ๊ฒฐ์ ๋๋ค'. ๋จ์ด์ ‘์ง์ ํ ๋ณธ๋์ ์๋ฏธ'๋ ์กด์ฌํ์ง ์๋๋ค.
2. ๊ฐ์กฑ์ ์ฌ์ฑ์ด๋ก : ํ๋กํ ํ์
์ธ์ด์์๋ ์ ์๋ก ๋ถํฐ ๋ถ๋ฅํ์ง ์๋๋ค. ๊ฐ์ฅ ์ข์ ๋ณด๊ธฐ(prototype, exemplar)๋ก๋ถํฐ ๋ฒ์ฃผํ๋๋ค.
์๋ฏธ์ฌ์ฉ์ด๋ก
์ดํ์ ๋ฒ์(lexical scope): ์๋ฏธ์ฌ์ฉ์ด๋ก ์ ๋ฐ๋ฅด๋ฉด ๋จ์ด์ ์๋ฏธ๋ ๊ทธ ์ดํ์ ์ธ, ๊ทผ์ฒ ํ๊ฒฝ์์์ ์๋ฏธ๊ฐ ๋๋ค. ์ด๋ Javascript์ ๋ค์์ฒ๋ผ ์ ์ฉ๋๋ค. ๋ณ์์ ์๋ฏธ๋ ๊ทธ ์ดํ์ ์ธ(Lexical), ์คํ ๋ฌธ๋งฅ(Execution Context)์์์ ์๋ฏธ๊ฐ ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋์ผ ๋ฒ์(์คํ ๋ฌธ๋งฅ)์ ๋ชจ๋ ์ ์ธ์ ์ฐธ๊ณ (ํธ์ด์คํ
)ํด ์๋ฏธ๋ฅผ ์ ์ํฉ๋๋ค.
ํธ์ด์คํ
์ ‘์ฝ๋๊ฐ ๋ก๋๋ ๋ ์ ์ธ ๋ถ๊ฐ ๋์ด์ฌ๋ ค์ง๋ค'๋ผ๊ณ ๋งํ์ง๋ง, ์ ํํ ๋ต๋ณ์ ‘์คํ ์ปจํ
์คํธ ์์ฑ ์ ๋ ์์ปฌ ์ค์ฝํ ๋ด์ ์ ์ธ์ด ๋์ด์ฌ๋ ค์ง๋ค'๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ์ ํํ๋ค.
Reference
https://medium.com/@limsungmook/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94-%EC%99%9C-%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85%EC%9D%84-%EC%84%A0%ED%83%9D%ED%96%88%EC%9D%84%EA%B9%8C-997f985adb42
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ ํ๋กํ ํ์ ์ ์ ํํ์๊น
ํ๋กํ ํ์ ์ผ๋ก ๊ฒ์ํ๋ฉด ์ผ๋ ๋์ค๋ ์๋์ฒ๋ผ ์ ๋ํ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฒ์ ์ ํ์ ๋ ๊ฐ์ฅ ๋นํฉ์ค๋ฌ์ ๋ ๊ฒ ํ๋กํ ํ์ ์ด์์ต๋๋ค.
medium.com
https://blog.naver.com/jeeloh/220832729596
๋ฒ์ฃผํ (Categorisation), ์ํ (Prototype)
์๋ฉ๋ฐ๋ ํ๋ ๋ฒ์ฃผํ๋ชจ๋ ์ด์์๋ ์กด์ฌ๋ ๋ค๋ฅธ ๋์์ ๋ฒ์ฃผํํ๋ ๋ฅ๋ ฅ์ด ์๋ค. (Lakoff, Philosophy i...
blog.naver.com
'๐ Front > ๐ฑ Vanilla JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DOM]: ์ด๋ฒคํธ ๋ฒ๋ธ๋ง์ ์ด์ฉํด ํ์ ์์ ์ ์ฒด ๋ค๋ฃจ๊ธฐ(e.target, e.currentTarget) (0) | 2022.01.27 |
---|---|
[DOM] Javascript๋ก html์ ์กฐ์ํด๋ณด์ (0) | 2022.01.17 |
๋ถ๋ณ๊ฐ๊ณผ ๊ฐ๋ณ๊ฐ์ ๋๋๋ ๊ธฐ์ค์ ๋ญ๊น? (0) | 2022.01.07 |
์คํฌ๋ฆฝํธ(script) ์ถ๊ฐ/์ ๊ฑฐํ๋ ๋ฒํผ ๋ง๋ค๊ธฐ (0) | 2021.11.22 |
[Iterable VS Enumerable] ๊น๋ํ๊ฒ ์ ๋ฆฌํ๊ณ ๊ฐ์๋ค (0) | 2021.11.19 |