回答編集履歴
7
アロー関数のコードブロック位置がずれていたのを修正
answer
CHANGED
@@ -63,6 +63,10 @@
|
|
63
63
|
|
64
64
|
アロー関数でも「即時関数」を書けます。
|
65
65
|
|
66
|
+
```JavaScript
|
67
|
+
(() => 6)(); // 6
|
68
|
+
```
|
69
|
+
|
66
70
|
### remodal.js
|
67
71
|
|
68
72
|
- [Remodal/remodal_test.js at master · vodkabears/Remodal](https://github.com/vodkabears/Remodal/blob/master/test/remodal_test.js)
|
@@ -82,9 +86,4 @@
|
|
82
86
|
|
83
87
|
特定のライブラリのコードであれば、制作者に尋ねるのが最良と私は思います。
|
84
88
|
|
85
|
-
|
86
|
-
```JavaScript
|
87
|
-
(() => 6)(); // 6
|
88
|
-
```
|
89
|
-
|
90
89
|
Re: ZET さん
|
6
remodal.js
answer
CHANGED
@@ -63,7 +63,27 @@
|
|
63
63
|
|
64
64
|
アロー関数でも「即時関数」を書けます。
|
65
65
|
|
66
|
+
### remodal.js
|
67
|
+
|
68
|
+
- [Remodal/remodal_test.js at master · vodkabears/Remodal](https://github.com/vodkabears/Remodal/blob/master/test/remodal_test.js)
|
69
|
+
|
66
70
|
```JavaScript
|
71
|
+
!(function($, location, document) {
|
72
|
+
// 中略
|
73
|
+
}(window.jQuery || window.Zepto, location, document));
|
74
|
+
```
|
75
|
+
|
76
|
+
少なくとも、コード単体で見た場合、`!` は**無意味な演算子**です。
|
77
|
+
返り値を使うでもなく、`()` で既に式文になっているわけですから。
|
78
|
+
|
79
|
+
先頭にセミコロン挿入のように、前述のコードに働く何がしかの対策かもしれませんが、思いつきません。
|
80
|
+
|
81
|
+
- [ライブラリ 先頭 セミコロン - Google 検索](https://www.google.com/search?q=%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA+%E5%85%88%E9%A0%AD+%E3%82%BB%E3%83%9F%E3%82%B3%E3%83%AD%E3%83%B3&oq=%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA+%E5%85%88%E9%A0%AD+%E3%82%BB%E3%83%9F%E3%82%B3%E3%83%AD%E3%83%B3&ie=UTF-8)
|
82
|
+
|
83
|
+
特定のライブラリのコードであれば、制作者に尋ねるのが最良と私は思います。
|
84
|
+
|
85
|
+
|
86
|
+
```JavaScript
|
67
87
|
(() => 6)(); // 6
|
68
88
|
```
|
69
89
|
|
5
表現の修正
answer
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
「即時関数」を定義する場合、
|
22
22
|
|
23
|
-
- 変数
|
23
|
+
- 変数未定義で即実行
|
24
24
|
- 単体の文として成立する
|
25
25
|
|
26
26
|
という状況が多いと思いますが、その場合、式文(Expression Statement)として成り立たなければなりません。
|
4
表現の修正
answer
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
function bar () {}(); // SyntaxError: Unexpected token ')'
|
35
35
|
```
|
36
36
|
|
37
|
-
"function" で始まらなければ、式文(Expression Statement)の
|
37
|
+
"function" で始まらなければ、式文(Expression Statement)の必要条件を満たし、即時関数を書けます。
|
38
38
|
|
39
39
|
```JavaScript
|
40
40
|
(function () { return 1; })(); // 1
|
3
一つの書き方にとらわれず
answer
CHANGED
@@ -50,7 +50,7 @@
|
|
50
50
|
|
51
51
|
このように、即時関数は特定の**構文**を指す呼称ではありません。
|
52
52
|
「関数定義後に即実行する」という**用途**で、即時関数と呼ばれます。
|
53
|
-
書き方は多種多様なので、一つ
|
53
|
+
書き方は多種多様なので、一つの書き方にとらわれず、他のパターンも考えてみると視野が広がるでしょう。
|
54
54
|
|
55
55
|
別例としては、再帰呼び出しする書き方があります。
|
56
56
|
|
2
式文(Expression Statement)の中で
answer
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
function bar () {}(); // SyntaxError: Unexpected token ')'
|
35
35
|
```
|
36
36
|
|
37
|
-
"function" で始まらなければ、即時関数を書くための条件が揃います。
|
37
|
+
"function" で始まらなければ、式文(Expression Statement)の中で即時関数を書くための条件が揃います。
|
38
38
|
|
39
39
|
```JavaScript
|
40
40
|
(function () { return 1; })(); // 1
|
1
コメントの修正
answer
CHANGED
@@ -38,10 +38,14 @@
|
|
38
38
|
|
39
39
|
```JavaScript
|
40
40
|
(function () { return 1; })(); // 1
|
41
|
-
(function () { return 2; }()); //
|
41
|
+
(function () { return 2; }()); // 2
|
42
42
|
+function () { return 3; }(); // 3
|
43
43
|
-function () { return 4; }(); // -4
|
44
44
|
!function () { return 5; }(); // false
|
45
|
+
|
46
|
+
/**
|
47
|
+
* 返り値を使わない場合、"()" を使うコード以外は「余計な処理」が働きます
|
48
|
+
*/
|
45
49
|
```
|
46
50
|
|
47
51
|
このように、即時関数は特定の**構文**を指す呼称ではありません。
|