Dream๐Ÿฐng
article thumbnail
[JS] ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ
๐Ÿ“ Study/JavaScript 2022. 9. 22. 11:03

ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ์ด๋ž€? ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ์— ์ ‘๊ทผํ•  ๋•Œ ํ•ด๋‹น ๊ฐ์ฒด์— ์ ‘๊ทผํ•˜๊ณ ์ž ํ•˜๋Š” ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ๋ถ€๋ชจ ์—ญํ• ์„ ํ•˜๋Š” ํ”„๋กœํ† ํƒ€์ž…์˜ ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•œ๋‹ค. ์ด๊ฒƒ์„ ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ์ด๋ผ๊ณ  ํ•œ๋‹ค. class Person { constructor(name, favorite) { this.name = name; this.favorite = favorite; } like() { console.log(`${this.name}์€ ${this.favorite}์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.`); } } const subin = new Person('์ˆ˜๋นˆ', '์–ดํ”ผ์น˜'); subin์€ Person์— ์˜ํ•ด ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— Person.prototype์˜ ๋ฉ”์†Œ๋“œ์ธ like()๋ฅผ..

article thumbnail
[JS] ํ”„๋กœํ† ํƒ€์ž…
๐Ÿ“ Study/JavaScript 2022. 9. 21. 17:42

ํ”„๋กœํ† ํƒ€์ž… ํ”„๋กœํ† ํƒ€์ž…์ด๋ž€? ํ”„๋กœํ† ํƒ€์ž…์€ ์›ํ˜• ๊ฐ์ฒด๋กœ, ์–ด๋–ค ๊ฐ์ฒด์˜ ๋ถ€๋ชจ ๊ฐ์ฒด ์—ญํ• ์„ ํ•˜๋Š” ๊ฐ์ฒด์ด๋‹ค. โœ๏ธ .prototype์™€ __proto__ prototype ์†์„ฑ์€ ํ•จ์ˆ˜ ๊ฐ์ฒด๋งŒ์ด ์†Œ์œ ํ•˜๋Š” ์†์„ฑ์œผ๋กœ ์ƒ์„ฑ์ž๊ฐ€ ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค์˜ ํ”„๋กœํ† ํƒ€์ž…์„, __proto__ ์ ‘๊ทผ์ž ์†์„ฑ์€ ์ž์‹ ์˜ ํ”„๋กœํ† ํƒ€์ž…์— ๊ฐ„์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. prototype์€ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๊ฐ€, __proto__๋Š” ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ ์‚ฌ์šฉ ์ฃผ์ฒด์ด๋‹ค. ๊ตฌ๋ถ„ ์†Œ์œ  ๊ฐ’ ์‚ฌ์šฉ ์ฃผ์ฒด ์‚ฌ์šฉ ๋ชฉ์  prototype constructor ํ”„๋กœํ† ํƒ€์ž…์˜ ์ฐธ์กฐ ์ƒ์„ฑ์ž ์ƒ์„ฑ์ž ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค์˜ ํ”„๋กœํ† ํƒ€์ž…์„ ํ• ๋‹น __proto__ ๋ชจ๋“  ๊ฐ์ฒด ํ”„๋กœํ† ํƒ€์ž…์˜ ์ฐธ์กฐ ๋ชจ๋“  ๊ฐ์ฒด ๊ฐ์ฒด๊ฐ€ ์ž์‹ ์˜ ํ”„๋กœํ† ํƒ€์ž…์— ์ ‘๊ทผ class Person { constructor(..

article thumbnail
[S2U2] JavaScript ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๊ฐ์ฒด ์ง€ํ–ฅ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€? ํ•˜๋‚˜์˜ ์ฒญ์‚ฌ์ง„์„ ๋งŒ๋“ค๊ณ  ๊ทธ ์ฒญ์‚ฌ์ง„์„ ๋ฐ”ํƒ•์œผ๋กœ, ์ฆ‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” class๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•˜๋Š” ํ•˜๋‚˜์˜ ๊ฐ์ฒด, ์ฆ‰ instance๋ฅผ ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ด์„ ์˜๋ฏธํ•œ๋‹ค. โœ๏ธ ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค ํด๋ž˜์Šค๋Š” ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ณต๊ฐ„์ด๊ณ  ์ธ์Šคํ„ด์Šค๋Š” ํด๋ž˜์Šค์—์„œ ์ •์˜๋œ ์ •๋ณด๋“œ๋ฅผ ๊ฐ€์ ธ์™€ ์ด์šฉํ•˜๋Š” ๊ฐ์ฒด์ด๋‹ค. ์†์„ฑ์€ ํด๋ž˜์Šค์— ํฌํ•จ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๊ณ , ๋ฉ”์†Œ๋“œ๋Š” ํด๋ž˜์Šค์— ํฌํ•จ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐ์—๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ํ•จ์ˆ˜๋กœ ์ •์˜ (ES5 ๋ฌธ๋ฒ•) function Introduce(name, age, favorite) { // ์ธ์Šคํ„ด์Šค ๋งŒ๋“ค์–ด์งˆ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ } class ํ‚ค์›Œ๋“œ๋กœ ์ •์˜ (ES6 ๋ฌธ๋ฒ•) class Introduce { constructor(..

profile on loading

Loading...