回答編集履歴

1

回答が不適切だったので修正

2017/11/15 04:43

投稿

tkturbo
tkturbo

スコア5572

test CHANGED
@@ -7,3 +7,75 @@
7
7
 
8
8
 
9
9
  [window.clearTimeout - Web API インターフェイス | MDN](https://developer.mozilla.org/ja/docs/Web/API/WindowTimers/clearTimeout)
10
+
11
+
12
+
13
+ -- 回答が不適切だったので修正:
14
+
15
+
16
+
17
+ ```
18
+
19
+ ↓ボタンクリックで動作
20
+
21
+ function xxx(){
22
+
23
+ var setIV = setInterval(rightContent,100);
24
+
25
+ setTimeout(stopMovement,1000);
26
+
27
+ }
28
+
29
+ ```
30
+
31
+ ```
32
+
33
+ function stopMovement(){
34
+
35
+ clearInterval(setIV);
36
+
37
+ }
38
+
39
+ //一秒後に移動の中止
40
+
41
+ ```
42
+
43
+
44
+
45
+ 変数「setIV」がfunction xxxの中で宣言されているため、stopMovementから参照できない。
46
+
47
+
48
+
49
+ クロージャを使って、こんな風にすれば
50
+
51
+
52
+
53
+ ```
54
+
55
+ ↓ボタンクリックで動作
56
+
57
+ function xxx(){
58
+
59
+ var setIV = setInterval(rightContent,100);
60
+
61
+ setTimeout(stopMovement(setIV),1000);
62
+
63
+ }
64
+
65
+ ```
66
+
67
+ ```
68
+
69
+ function stopMovement(setIV){
70
+
71
+ return function(){
72
+
73
+ clearInterval(setIV);
74
+
75
+ };
76
+
77
+ }
78
+
79
+ //一秒後に移動の中止
80
+
81
+ ```