stackoverflow보고 코드 해석 해보고있는데 뭐가틀린걸까요?

stackoverflow보고 코드 해석 해보고있는데 뭐가틀린걸까요?

QA

stackoverflow보고 코드 해석 해보고있는데 뭐가틀린걸까요?

본문

var getTimeout = function(){
    var e=setTimeout,
        b={};
    setTimeout=function(a,c){
            var d=e(a,c);
            b[d]=[Date.now(),c];
            return d
    };
    return function(a){
        return(a=b[a])?Math.max(a[1]-Date.now()+a[0],0):NaN
    }
 }();

 

원본 코드

 

나름의 머리로 해석한 코드

var getTimeout = function(){
    var setTimes = setTimeout,
    mapArray = {} // 빈 객체
    setTimeout(function(callback,delay){
    var id = setTimes(callback, delay);
    mapArray[id] = [Date.now(),delay];
    return id
   })
   
   return function(callback){
    return (callback=mapArray[callback]) ? Math.max(callback[1]-Date.now()+callback[0],0) : NaN
    }
   }
   
   function init(){
    getTimeout()
   }
   
   init()

   혹시 둘 차이를 좀 상세하게 알려 주실 분 계신가요?ㅠ

이 질문에 댓글 쓰기 :

답변을 작성하시기 전에 로그인 해주세요.
전체 65
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT