Skip to content

javascript_jquery_basic_3_2

KyusungDev edited this page Apr 28, 2017 · 5 revisions

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํด๋ž˜์Šค ๊ธฐ์ดˆ

ํด๋ž˜์Šค ์†Œ๊ฐœ

ํด๋ž˜์Šค๋ž€?

๋งŽ์€ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜ ์ค‘ ์—ฐ๊ด€ ์žˆ๋Š” ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋งŽ์€ ์„ ๋ณ„ํ•ด ํฌ์žฅํ•˜๋Š” ๊ธฐ์ˆ 
ํด๋ž˜์Šค๋กœ ํฌ์žฅํ•˜๋Š” ์ด์œ ๋Š” ๊ฐ์ฒด ๋‹จ์œ„๋กœ ์ฝ”๋“œ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•จ

ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง„ ๋‘ ๊ฐ€์ง€ ๊ธฐ๋Šฅ

  1. ๊ฐ์ฒด๋‹จ์œ„์˜ ์ฝ”๋“œ ๊ทธ๋ฃนํ™”
  2. ๊ฐ์ฒด ๋‹จ์œ„์˜ ์ค‘๋ณต ์ฝ”๋“œ ์ œ๊ฑฐ ๋ฐ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ

ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹

  • ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹
  • ํ•จ์ˆ˜ ๋ฐฉ์‹
  • ํ”„๋กœํ† ํƒ€์ž… ๋ฐฉ์‹

ํด๋ž˜์Šค ๊ด€๋ จ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์šฉ์–ด์ •๋ฆฌ

ํด๋ž˜์Šค = ๋ถ•์–ด๋นตํ‹€
์ธ์Šคํ„ด์Šค = ๋ถ•์–ด๋นต

์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

var ๋ถ•์–ด๋นต1 = new ๋ถ•์–ด๋นตํ‹€();

๊ฐ์ฒด
ํด๋ž˜์Šค์˜ ์‹ค์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์šฉ์–ด, ์ธ์Šคํ„ด์Šค์™€ ๊ฐ™์€ ์˜๋ฏธ๋กœ ํ•ด์„๋จ
์ธ์Šคํ„ด์Šค๋Š” new ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด ํด๋ž˜์Šค์˜ ์‹ค์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋–„ ์ฃผ๋กœ ์‚ฌ์šฉํ•จ
๊ฐ์ฒด๋Š” ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ํ›„ ํด๋ž˜์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•จ

ํ”„๋กœํผํ‹ฐ
ํด๋ž˜์Šค ๋‚ด๋ถ€์— ๋ณ€์ˆ˜, ๋ฉค๋ฒ„๋ณ€์ˆ˜๋กœ๋„ ๋ถˆ๋ฆผ

๋ฉ”์„œ๋“œ
ํด๋ž˜์Šค ๋‚ด๋ถ€์— ํ•จ์ˆ˜, ๋ฉค๋ฒ„ํ•จ์ˆ˜๋กœ๋„ ๋ถˆ๋ฆผ

์˜ค๋ธŒ์ ํŠธ ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹์œผ๋กœ ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ

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

ํ•จ์ˆ˜ ๋ฐฉ์‹์œผ๋กœ ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ

  • ํ•จ์ˆ˜ ๋‚ด๋ถ€์— this๋ฅผ ์ด์šฉํ•ด ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ตฌ์กฐ
  • ํ•จ์ˆ˜ ์„ ์–ธ๋ฐฉ์‹๊ณผ ๋™์ผํ•˜์ง€๋งŒ ์„ ์–ธ์ง€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผํ•จ (๊ด€๋ก€)
  • ํด๋ž˜์Šค ์ด๋ฆ„ ์ž์ฒด๊ฐ€ ์ƒ์„ฑ์ž์ด๋ฉฐ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋จ
  • new ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ
  • ์ (.) ํ‘œ๊ธฐ๋ฒ• ์ด์šฉํ•ด ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ์— ์ ‘๊ทผ
  • ๊ฐ์ฒด ๋‚ด๋ถ€์—์„œ์˜ ์ž๊ธฐ ์ž์‹ ์€ this๋ฅผ ์ด์šฉํ•ด ์ž์‹ ์„ ์ฐธ์กฐ
  • ๋‚ด๋ถ€ ๋ฉค๋ฒ„ ๋ฉ”์„œ๋“œ๊ฐ€ ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ธ์Šคํ„ด์Šค์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€

ํ”„๋กœํ† ํƒ€์ž… ๋ฐฉ์‹์œผ๋กœ ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ

  • ํ•จ์ˆ˜ ๋‚ด๋ถ€์— this๋ฅผ ์ด์šฉํ•ด ํ”„๋กœํผํ‹ฐ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋ฉ”์„œ๋“œ๋Š” prototype์— ์ •์˜ํ•˜๋Š” ๊ตฌ์กฐ
  • ํ•จ์ˆ˜ ์„ ์–ธ๋ฐฉ์‹๊ณผ ๋™์ผํ•˜์ง€๋งŒ ์„ ์–ธ์ง€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผํ•จ (๊ด€๋ก€)
  • ํด๋ž˜์Šค ์ด๋ฆ„ ์ž์ฒด๊ฐ€ ์ƒ์„ฑ์ž์ด๋ฉฐ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋จ
  • new ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ
  • ์ (.) ํ‘œ๊ธฐ๋ฒ• ์ด์šฉํ•ด ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ์— ์ ‘๊ทผ
  • ๊ฐ์ฒด ๋‚ด๋ถ€์—์„œ์˜ ์ž๊ธฐ ์ž์‹ ์€ this๋ฅผ ์ด์šฉํ•ด ์ž์‹ ์„ ์ฐธ์กฐ
  • ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋Š” prototype์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹
  • ์ƒ์† ๊ธฐ๋Šฅ
// ํด๋ž˜์Šค ์ƒ์„ฑ์ž
function User() { 
    // ํ”„๋กœํผํ‹ฐ ์ •์˜
    this.name = "ddandonge";
    this.age = 10;   
}

// ๋ฉ”์„œ๋“œ ์ •์˜
User.prototype.showInfo = function() {
    document.write("name = "+this.name+", age = "+this.age);
}

var user = new User(); // ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
user.showInfo(); // ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ

๋ฏธ์…˜3 - ์‹ฌํ”Œ๊ฐค๋Ÿฌ๋Ÿฌ๋ฆฌ๋ฅผ ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค๊ธฐ

Clone this wiki locally