Programming/๊ธฐ์ดˆ

[ํ”„๋กœ๊ทธ๋ž˜๋ฐ] ๊ฐ์ฒด, ํด๋ž˜์Šค๋ž€? (feat. ์ธ์Šคํ„ด์Šค)

MOONCO 2022. 5. 20. 16:59

๐Ÿ‘‰ ๊ฐ์ฒด๋ž€? (Object)

ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ฝ”๋“œ๋ฅผ

์—ญํ• ๊ณผ ์˜๋ฏธ์— ๋งž๊ฒŒ ๋ถ„๋ฆฌํ•˜์—ฌ, 

๊ทธ์— ๋งž๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ˜•ํƒœ์˜ ๋ณ€์ˆ˜์™€ ( variable )


๊ทธ ๋ณ€์ˆ˜๋“ค์„ ๋‹ค๋ฃฐ ํ•จ์ˆ˜( function )๋ฅผ

ํ•œ ๊ตฐ๋ฐ ๋ฌถ์–ด์„œ ์ €์žฅํ•ด ๋†“์€ ๋ฌถ์Œ

 

์ด๋•Œ ๊ฐ์ฒด์— ๋‹ด์€ ๋ณ€์ˆ˜๋ฅผ "๋ฉค๋ฒ„๋ณ€์ˆ˜"( property ) ๋ผ๊ณ  ๋ถ€๋ฅด๊ณ ,

๊ฐ์ฒด์— ๋‹ด์€ ํ•จ์ˆ˜๋ฅผ "๋ฉ”์„œ๋“œ"( method ) ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

๐Ÿ‘‰ ํด๋ž˜์Šค๋ž€?

๊ฐ™์€ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๋ฅผ, ์—ฌ๋Ÿฌ๊ฐœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์„ค๊ณ„๋„

 

ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ

// ๋™๋ฌผ ๊ฐ์ฒด ํ‹€(ํด๋ž˜์Šค) ๋งŒ๋“ค๊ธฐ
class Animal {
  // ์ƒ์„ฑ์ž - ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๋•Œ, ๊ทธ ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ์„ค์ •ํ•˜๋Š” ํ•จ์ˆ˜
  // ํด๋ž˜์Šค ์‹คํ–‰์‹œ, ์ธ์ž๋ฅผ ๋ฐ›๊ณ  ์ฒ˜์Œ 1๋ฒˆ ์‹คํ–‰๋œ๋‹ค.
  constructor(name, live) {
    console.log("constructor excuted.");
    
    // ์ด ๊ฐ์ฒด(this)์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜์—, constructor๊ฐ€ ๋ฐ›์€ ์ธ์ž๋ฅผ ํ• ๋‹นํ•œ๋‹ค
    this.name = name;
    this.live = live;
  }
  // ๋™๋ฌผ์˜ ์ƒํƒœ๋ฅผ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋กœ ์ €์žฅ
  name = "";
  live = true;
}

 

ํด๋ž˜์Šค ์‚ฌ์šฉํ•˜๊ธฐ ( ํด๋ž˜์Šค ๋ณธ๋”ฐ, ๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ )

// new Animal()๋กœ, ํด๋ž˜์Šค ์‚ฌ์šฉํ•˜๊ธฐ

// ํ† ๋ผ ๊ฐ์ฒด ๋งŒ๋“ฌ - ()์•ˆ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” counstructor๋กœ ์ „๋‹ฌ๋œ๋‹ค.
const rabbit = new Animal("rabbit", false);
// ๊ฐ•์•„์ง€ ๊ฐ์ฒด ๋งŒ๋“ฌ
const dog = new Animal("dog");

// ํ† ๋ผ์™€ ๊ฐ•์•„์ง€๋Š” ๋ชจ๋‘ ๋™๋ฌผ์ด๋ฏ€๋กœ, ๋™๋ฌผํ‹€(ํด๋ž˜์Šค)๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ‘‰ ์ธ์Šคํ„ด์Šค ๋ž€? (instance)

ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐ์ดํ„ฐ

ํด๋ž˜์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์— ํฌํ•จ๋˜๋ฏ€๋กœ, ( ๋ถ€๋ถ„ ์ง‘ํ•ฉ )
ํด๋ž˜์Šค๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐ์ดํ„ฐ์ธ ๊ฐ์ฒด๋Š” ์ธ์Šคํ„ด์Šค์ด๋‹ค. ( ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ถ€๋ถ„ ์ง‘ํ•ฉ )

[ ์ฃผ์˜ ]
๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ํด๋ž˜์Šค๋ณด๋‹ค ๋” ๋„“์€ ์˜๋ฏธ์ด๋ฉฐ, ( ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ > ํด๋ž˜์Šค )
์ธ์Šคํ„ด์Šค๊ฐ€ ๊ฐ์ฒด๋ณด๋‹ค ๋” ๋„“์€ ์˜๋ฏธ์ด๋‹ค. ( ์ธ์Šคํ„ด์Šค > ๊ฐ์ฒด )

 

๐Ÿ‘‰ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ด๋ž€?

 

[ํ”„๋กœ๊ทธ๋ž˜๋ฐ] ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€? / ์ ˆ์ฐจ์ง€ํ–ฅ, ๊ฐ์ฒด์ง€ํ–ฅ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€? ์ปดํ“จํ„ฐ์—๊ฒŒ ์‹œํ‚ฌ ์ž‘์—…์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด ์ ๋Š” ํ–‰๋™ ์ ˆ์ฐจ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ด๋ž€? ์ปดํ“จํ„ฐ์—๊ฒŒ ์ผ์„ ์‹œํ‚ฌ๋•Œ, ์ •ํ•ด์ง„ ์ˆœ์„œ๋Œ€๋กœ(ex:์œ„์—์„œ ์•„๋ž˜๋กœ) ์ฒ˜๋ฆฌํ•˜๋ผ๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ

defineall.tistory.com

 

๋ฐ˜์‘ํ˜•