詳細な手ぶれ防止処理(debounce)とコードの実現


debounce var count=1; var container = document.querySelector("#container"); container.onmousemove=debounce(getUserAction,1000); // ( this event ): debounce , , JavaScript , , timeout , , wait , setTimeout , timeout , wait func 。 timeout , 。 function debounce(func, wait) { var timeout; // retur setTimeout return function () { var arg=arguments; var context=this; // this container , , setTimeout 。 clearTimeout(timeout); timeout = setTimeout(func.bind(context,arg),wait); // call apply ( ), call apply , bind , 。 console.log(arguments.callee); } } function getUserAction(e){ console.log("shijian",e); // event , debounce , , debounce , ,setTimeout func bind 。 console.log("ddd",this); // debounce ,this window, bind , container 。 console.log(arguments.callee); container.innerHTML=count++; console.log(container.innerHTML); }