詳細な手ぶれ防止処理(debounce)とコードの実現
1712 ワード
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);
}