< Return to Video

Object Methods (Video Version)

  • 0:01 - 0:06
    저번 시간에는 객체 타입을 만들고 두 개의
    윈스턴 객체를 만들었어요
  • 0:06 - 0:09
    생성자를 이용해서 초기화도 했죠
  • 0:09 - 0:13
    그리고 객체 타입은 속성에만 꼭 관련될 필요는 없어요
  • 0:13 - 0:19
    함수와 관련되어도 되지요
    모든 속성이 내장되어 있는 객체를 생각해 보세요
  • 0:19 - 0:26
    사람과 같이 말이죠. 우린 키와 나이도 갖고 있지만
    수면, 밥먹기, 프로그래밍과 같은 활동도 할 수 있어요
  • 0:26 - 0:30
    우린 이제 이런 객체 타입을 함수와 연관시키려고 해요
  • 0:31 - 0:36
    이 프로그램은 저번에 끝냈던 프로그램 그대로인데요
    여기 함수가 있어요
  • 0:36 - 0:43
    drawWinston 두 개의 윈스턴 객체에서 모두 부른 함수예요
    이러면 더 편하지 않을까요?
  • 0:43 - 0:49
    윈스턴 객체 타입으로 함수를 넣어버리면 말이예요
    생각보다 쉬워요
  • 0:49 - 0:56
    생성자 밑에 Winston.prototype이라 쓸게요
  • 0:56 - 0:59
    프로토타입이라는 말을 처음 들어 볼 텐데요
  • 0:59 - 1:06
    프로토타입은 함수로써 표현한 객체의 특성입니다
  • 1:06 - 1:13
    즉, 모든 인스턴스들이 모두 이 함수를 갖게 됩니다
  • 1:13 - 1:20
    그럼 "prototype." 다음에 함수 이름을 쓰고요
    여기서는 draw겠죠?
  • 1:20 - 1:26
    밑에 있는 drawWinston 코드를 가지고 와서
  • 1:26 - 1:33
    이 안에 넣을게요
    지금 우리는 draw 함수를
  • 1:33 - 1:40
    윈스턴 프로토타입에 넣었어요
    이제 윈스턴 타입 객체에서 언제든 draw 함수를 호출할 수 있을 거예요
  • 1:40 - 1:45
    이제 우리는 draw 함수를
    winstonTeenwinstonAdult에 대해 호출해야 됩니다
  • 1:45 - 1:50
    이런 식으로 함수를 만들면
    객체에서도 호출을 할 수 있습니다
  • 1:50 - 1:55
    이런 함수를 정확한 명칭으로 "메소드"라고 부릅니다
    저는 앞으로 메소드라고 부를게요
  • 1:55 - 1:58
    그러면 이건 "draw method" 겠죠?
  • 1:58 - 2:04
    전에 썼던 코드는 다 지워버리고
    우리가 만든 함수를 호출할 수 있는지 확인해 봅시다
  • 2:04 - 2:07
    winstonTeen.draw()
  • 2:07 - 2:14
    오류가 나네요
    winstObject가 정의가 안 되었습니다
  • 2:14 - 2:21
    winstObject 인수를 drawWinston에 전달하기 전에
  • 2:21 - 2:26
    지금은 전달되는 인수가 없으니까
    이렇게 바꿔주면
  • 2:26 - 2:31
    봅시다 여기에 뭐가 전달되어야 하죠?
    winstonTeen을 전달 할게요
  • 2:31 - 2:38
    실행되었어요 하지만 좀 이상하지 않나요?
    객체 스스로 객체를 그리는데
  • 2:38 - 2:44
    객체 자체를 인수로 전달받고 있어요
    불필요해 보이네요
  • 2:44 - 2:48
    맞아요 하지 않아도 되요 지워버릴게요
    이제 생각해봅시다
  • 2:48 - 2:54
    객체 안에서 객체의 속성을 참조하려면 어떻게 해야죠?
  • 2:54 - 3:00
    글쎄요 전에 생성자에서 썼던 특별한 키워드
    this를 기억하나요? 아~
  • 3:00 - 3:09
    이것(this)을 this로 바꾸면 어떨까요? (웃음)
    winstObjectthis로 바꿔줍시다
  • 3:09 - 3:13
    우린 객체 안에 있으니까요
    함수가 객체 안에서 구동되니,
  • 3:13 - 3:17
    현재 객체에서 자신을 부르기 위해서는
    this를 써야 할 거예요
  • 3:17 - 3:23
    우린 this를 현재 객체의 모든 속성에 접근하기 위해 사용했어요
  • 3:23 - 3:27
    그리고 제대로 작동했어요
    엄청 좋지 않나요?
  • 3:27 - 3:32
    이제 우리는 winstonAdult.draw()라고 쓸 수 있을 거예요
  • 3:32 - 3:38
    짜잔 객체에서 호출이 되기 때문에
    winstonAdult 속성에 접근할 수 있어요
  • 3:38 - 3:46
    this라는 키워드가 되게 좋아보이지 않나요?
    가끔씩 헷갈려도 말이지요
  • 3:46 - 3:52
    좋아요 이것도 재미 있었는데 다른 메소드도 새로 만들어 볼게요
    윈스턴이 뭘 할 수 있을까요?
  • 3:52 - 4:01
    말을 합니다 그럼 우리는 Winston.prototype.talk를 쓰고요
    이렇게 넣을수록 프로토타입에는 많은 메소드가 들어가 있겠죠?
  • 4:01 - 4:05
    이렇게 말합니다
    "I'm Winston"
  • 4:05 - 4:12
    위치를 this.x+20this.y+150 으로 할게요
  • 4:13 - 4:20
    알다시피 아무것도 일어나지 않았어요
    내가 아직 함수를 호출하지 않았으니까요
  • 4:20 - 4:25
    teen이 말을 하도록 할게요 winstonTeen.talk()
  • 4:25 - 4:30
    나는 윈스턴이예요 짜잔
    이제 winstonAdult.talk()
  • 4:30 - 4:37
    짜잔, 좋아요 이제 윈스턴 타입으로
    속성에는 닉네임과
  • 4:37 - 4:45
    나이, x, y가 있고요
    함수에는 메소드가 속성을 토대로 행동을 합니다
  • 4:45 - 4:51
    이제 우리는 윈스턴 인스턴스를 가능한 많이 만들고
    어떠한 메소드든지 간에 호출할 수 있겠죠?
  • 4:51 - 4:54
    괜찮지 않나요?
Title:
Object Methods (Video Version)
Description:

more » « less
Video Language:
English
Duration:
04:54

Korean subtitles

Incomplete

Revisions