[๐Ÿ’ป ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE 44๊ธฐ][part 1] ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค

JiEunยท2023๋…„ 3์›” 15์ผ
0

โœ”๏ธ ์‹œ์ž‘

์ด๋ฒˆ ํ•™์Šต์—์„œ ํด๋ž˜์Šค(class), ์ธ์Šคํ„ด์Šค(instance) ๊ทธ๋ฆฌ๊ณ  ES6 ์ž‘์„ฑ๋ฒ•์— ๋Œ€ํ•ด ํ•™์Šตํ–ˆ๋‹ค.


๐Ÿ“ ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค

ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๋งŽ์€ ์—ฐ๊ด€์ด ์žˆ๋‹ค.

โ‘  ํ•˜๋‚˜์˜ ๋ชจ๋ธ์ด ๋˜๋Š” ์ฒญ์‚ฌ์ง„(blueprint)๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ โ‘  ํด๋ž˜์Šค(class)๋ผ๊ณ  ํ•˜๋ฉฐ
โ‘ก ๊ทธ ์ฒญ์‚ฌ์ง„์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ ๊ฐ์ฒด(object)๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ ์„ โ‘ก ์ธ์Šคํ„ด์Šค(instance)๋ผ๊ณ  ํ•œ๋‹ค.

//โ‘  class
function Car(color){}
//โ‘ก instance
// Car๋ผ๋Š” ํด๋ž˜์Šค์˜ ๊ณ ์œ ํ•œ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ–๊ฒŒ ๋œ๋‹ค.
let avante = new Car('blue');
let mini = new Car('red');
let beeties = new Car('black');
  • ์ƒˆ๋กœ์šด ์ธ์Šคํ„ดํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ค€๋‹ค.
  • ๋‹ค๋ฅธ ํ•จ์ˆ˜์™€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด class๋Š” ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ณต์žฅ์—์„œ ์žฅ๋‚œ๊ฐ์„ ๋งŒ๋“ค ๋•Œ ๋„์ƒ‰๋˜์ง€ ์•Š์€ ์ƒํƒœ(์•„๋ฌด๊ฒƒ๋„ ์ž‘์—…ํ•˜์ง€ ์•ˆ์•Š์€ ์ƒํƒœ)๋ฅผ ํด๋ž˜์Šค๋ผ ํ•œ๋‹ค๋ฉด
์žฅ๋‚œ๊ฐ์˜ ํŠน์ง•์— ๋”ฐ๋ผ ์ƒ‰์ƒ, ์•…์„ธ์‚ฌ๋ฆฌ ๋“ฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…(์†์„ฑ ์ถ”๊ฐ€)์„ ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

๐Ÿ“ ES5, ES6

ํ•จ์ˆ˜ ์ž‘์„ฑ๋ฒ•์€ ๋Œ€๊ฐœ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

๐Ÿ’ป ES5

function Car(brand, name, color){
	//์‹คํ–‰ ์ฝ”๋“œ
}

๐Ÿ’ป ES6

  • class ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ES6 ๋ฐฉ๋ฒ•์ด ์ตœ์‹ ์œผ๋กœ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
// ์ƒ์„ฑ์ž(constructor) ํ•จ์ˆ˜
class Car {
	consructor(brand, name, color){
	//์‹คํ–‰ ์ฝ”๋“œ
   }
}

ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑ์ž(constructor) ํ•จ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค.
์ƒ์„ฑ์ž ํ•จ์ˆ˜๋Š” return ๊ฐ’์„ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค.


โœ๏ธ ๋งˆ์น˜๋ฉฐ

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ๋ฒˆ ์ž‘์—…์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ์œ ์šฉํ•˜๋ฉฐ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

๋˜ํ•œ ES5๋กœ๋งŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์žˆ๋˜ ๋‚˜์—๊ฒŒ ES6๋ผ๋Š” ์ฝ”๋“œ ์ž‘์„ฑ๋ฒ•์œผ๋กœ
์ฝ”๋“œ๋ฅผ ์ตœ์‹ ํ™” ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜์—ญ์€ ๋น ๋ฅด๊ฒŒ ๋ฐœ์ „ํ•ด ๋‚˜๊ฐ€๋Š” ๊ฑฐ ๊ฐ™๋‹ค.

profile
๐Ÿ’ป ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๋ชฉํ‘œ๋กœ ์„ฑ์žฅ ์ค‘! (์•Œ์•„๋ดค๋˜ ๋‚ด์šฉ ๋“ฑ์„ ์ •๋ฆฌํ•˜๊ธฐ)

0๊ฐœ์˜ ๋Œ“๊ธ€