DEV Community

Discussion on: valueOf 메소드, 뭐하러 있냐?

Collapse
 
composite profile image
Composite

흠... 다시보니 그렇군요. valueOf 미정의 시 객체 자체를 뱉게 됩니다.
따라서 alert 함수 호출하면 무조건 문자열 가져오기 위해 인자.toString() 메소드 호출해서 뿌리니까요.
생각난 김에 재밌는 코드를 하나 만들어 봤습니다.

function Wow() {
  this.toString = () => "Wow"
}

alert(new Wow().valueOf())
Enter fullscreen mode Exit fullscreen mode

결과적으로는 Wow 라는 경고창이 뜰텐데, new Wow().valueOf().toString() 결과를 뱉어내게 되니 결국 자신을 뱉어내고 toString() 메소드를 호출하죠.

하지만 문제는, 제가 왜 저딴식으로 작성했는지 오래되어 기억이 안난다는 거죠.
지적 감사합니다. 근데 고치기 귀찮군요. 고치자니 재미도 없고 감동도 없어서.