• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

return this에 대해서 이해가 잘 되지 않아요

21.08.27 10:58 작성 조회수 865

0

1-vanilla 폴더에서 View.js / FormView.js / TabView.js / KeywordView.js (상속 받는 HistoryView.js) 등이 갖고 있는 메서드 중에서 return this를 하는 메서드가 있는데요,

return this를 하는 이유는 무엇이고, return this를 함으로써 어떻게 사용되는 것인지, 만약 return this를 하지 않는다면 어느 부분에서 어떤 에러가 발생하게 되는 것인지 명쾌하게 이해가 되지 않습니다. ResultView에서는 return this를 하지 않는 것은 또 왜인가요?

추가)

각 메서드 내부에서 console.log를 찍어보기는 했는데요,

View.js의 init() 메서드 안에서 찍어본 console.log(this)는 Form, Tab, Keyword 등의 View객체를 가리키는 것 같긴 해요. 

다른 ...View.js 파일에서 this를 쓰는 메서드마다 전부 console.log를 찍어보더라도 this에 대한 개념이 잘 와닿지가 않습니다.

답변 부탁드리겠습니다!

답변 1

답변을 작성해보세요.

0

메소드에서 this를 반환하는 것은 이것으로 다른 함수를 계속 호출하려는 의도입니다. 함수 체이닝이라고 하는데요. 제이쿼리에서 많이 사용하는 방식입니다. 예를 들면 이런 식으로 호출할수 있어요. 

a().b().c()

추가)

object.create() 함수를 이용해서 객체를 확장한 것인데요. 예를 들어 Form은 View를 확장해서 사용한 객체입니다. 그래서 View의 init을 포함한 모든 프로토타입 객체를 가져오는데요. init()에서 this를 찍으면 Form을 가리키는 이유가 이 때문입니다.