JS 객체 설계 시 This를 반환하는 이유.



보통 JS 객체 설계 시 특정 함수의 반환 값으로 this 를 반환하는 경우는, 말그대로 현재 Context 유지하기 위함이다.


즉, JS 패턴 중 하나인 "Method Chaining" 패턴을 구현하기 위해 쓰인다.


그러므로 인스턴스를 생성하기 위한 a, b Class 함수 상 에는 구지 필요하지 않지만,(들어가도 크게 상관은 없다.) "Method Chaining" 패턴을 구현하기 위해선, a.setName 메서드 상에 반드시 현재 Context를 반환하기 위한 코드인 "return this" 필요하다.




- 위 코드의 결과는 아래와 같다.


1. a Class 함수 a.setName 메서드 상에 현재 Context를 반환하기 위한 코드인 "return this" 가 없으므로 Method Chaining 이 구현되지 않았다.(그로인해 getName 메서드 호출 시 메서드가 정의 되지 않았다는(undefined) 오류가 발생하게 된다.)

2. b Class 함수 b.setName 메서드 상에 현재 Context를 반환하기 위한 코드인 "return this" 가 존재 하므로 "Method Chaining" 구현 되었다.(그로인해 getName 메서드 호출 시 오류가 발생하지 않고 해당 Function을 반환하게 된다.)