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()
혹시 둘 차이를 좀 상세하게 알려 주실 분 계신가요?ㅠ