返り値を関数にして、クロージャ作成完了!
iphoneのtouchイベントについて子細に調べており、とても参考になります。「誰の役にたつのか?」を連発されており、コメントも受け付けていないようなのですが、いるよ!ここに感謝してる人間いるよ!!
で、見たことなくて「なるほどな」と思ったコードがあったのでロギング。
関数①の返り値が関数②になっていて、その関数②をハンドラに指定するから、関数①で定義した変数の値を保持してられる。(こういう変数を関数②のグローバル変数とかって言うの?何て言うの)
//... var touchHandler = getTouchHandler(); //... box.addEventListener("touchmove", touchHandler, false); //... function getTouchHandler() { console.log('はじめに一回だけ実行!'); var startX = 0; return function(e) { console.log('touchmoveの度に実行!!'); e.preventDefault(); //... } }
オブジェクトを作って new 演算子でインスタンスを生成・・・してもいいんだけど、1度きりだしなんか無駄。でも上のやり方だと、使い捨てオブジェクトというか、とてもシンプルにインスタンスの仕組みを1個作ることができる。
もっと人のコード読まなければ!!