プロが教えるわが家の防犯対策術!

参考にしているJavaScriptのソースで下記のような部分があったのですが、
(画面に描画をするプログラムの一部です。動きとしてはマウスの動きに合わせて模様が描かれて残像が残って消えていきます。)
j(b)関数の中の一行目でdocument.removeEventListener("mousemove", j, !1);
としてmousemoveのイベントリスナーを削除しているのが何故なのか解らず困っています。
メモリリークが発生するとかそういう問題なのでしょうか?

-----------------------------------------------------------------------
<script type="text/javascript">
(function() {
function j(b) {
document.removeEventListener("mousemove", j, !1);
document.removeEventListener("touchstart", j, !1);
y(b);
var g = l - p * 0.5, f = m - q * 0.5, a = Math.sqrt(g * g + f * f), b = l + g / a * 150, a = m + f / a * 150, g = Math.atan2(f, g);
g += Math.PI * (0.5 + Math.random() * 0.5) * (Math.random() > 0.5 ? 1 : -1);
for (f = 0; f < z; f++) {
for (var e = A[f].f, c = 0; c < r; c++) {
var d = e[c], h = Math.PI * 0.15 / r * c + g, k = Math.cos(h) * (r - c) * 2, h = Math.sin(h) * (r - c) * 2;
d.x = b;
d.y = a;
d.d = k;
d.e = h
}
j = !1
}
document.addEventListener("mousemove", y, !1);
document.addEventListener("touchmove", y, !1);
document.addEventListener("touchstart", K, !1);
setInterval(L, 1E3 / 30)
}
-------------------------------------------------------------------------

同じソースの中で
window.onload = function(){
・・・
  document.addEventListener("mousemove", j, !1);

というようにイベントリスナーに登録しているところは見つかったので、これを削除しているのかとは思うのですが、
何分未熟なもので、それがどういう意図によるものなのか理解できません。
どなたか、知恵を貸して頂けないでしょうか?

A 回答 (1件)

y とか K とか L が何をしてるかがわからないんで何とも言えないですけど、


onload時にはj、その後にはyがmousemoveのイベントリスナにあてられてるってことは、
j が初期設定をするfunctionで、
yがその後の動作に関するfunctionなのではないかなと思います。

初期設定を何度もやり直されたら困る、ってことでremoveEventしてるのではないでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A