흠... 다시보니 그렇군요. valueOf 미정의 시 객체 자체를 뱉게 됩니다. 따라서 alert 함수 호출하면 무조건 문자열 가져오기 위해 인자.toString() 메소드 호출해서 뿌리니까요. 생각난 김에 재밌는 코드를 하나 만들어 봤습니다.
alert
인자.toString()
function Wow() { this.toString = () => "Wow" } alert(new Wow().valueOf())
결과적으로는 Wow 라는 경고창이 뜰텐데, new Wow().valueOf().toString() 결과를 뱉어내게 되니 결국 자신을 뱉어내고 toString() 메소드를 호출하죠.
Wow
new Wow().valueOf().toString()
toString()
하지만 문제는, 제가 왜 저딴식으로 작성했는지 오래되어 기억이 안난다는 거죠. 지적 감사합니다. 근데 고치기 귀찮군요. 고치자니 재미도 없고 감동도 없어서.
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
흠... 다시보니 그렇군요. valueOf 미정의 시 객체 자체를 뱉게 됩니다.
따라서
alert
함수 호출하면 무조건 문자열 가져오기 위해인자.toString()
메소드 호출해서 뿌리니까요.생각난 김에 재밌는 코드를 하나 만들어 봤습니다.
결과적으로는
Wow
라는 경고창이 뜰텐데,new Wow().valueOf().toString()
결과를 뱉어내게 되니 결국 자신을 뱉어내고toString()
메소드를 호출하죠.하지만 문제는, 제가 왜 저딴식으로 작성했는지 오래되어 기억이 안난다는 거죠.
지적 감사합니다. 근데 고치기 귀찮군요. 고치자니 재미도 없고 감동도 없어서.