본문 바로가기

JavaScript

[Javascript] method overload



addMethod에 의해서 old에 이전 참조가 유지되어..
호출 체인이 발생하는 것 같이 보인다.

3개의 서로 다른 파라메터 개수를 가진 함수를 addMethod로 추가한 후 

ninjas.find()를 호출해보면....


(2, 0) (1, 0) (0, 0)이 로그로 찍힌 후 함수가 실행되는데.....


ninjas.find() 실행시 fn은 제일 마지막에 추가된 파라메터 2개짜리 function이 arguments는 ninjas.find()에서의

파라메터가 넘어가고... 두 파라메터의 길이가 같지 않으므로 old.apply가 실행되는데 이 old는 

addMethod에서 두번째로 추가한 파라메터 하나짜리 .... 이런식으로 연속적인 콜이 발생하는듯..


대박...;;