質問するログイン新規登録

回答編集履歴

1

Reactの仕様を元に追記

2017/11/24 04:32

投稿

miyabi-sun
miyabi-sun

スコア21542

answer CHANGED
@@ -1,4 +1,4 @@
1
- 言い換えるとまんまこれです。
1
+ JS的には殆ど同様です。
2
2
 
3
3
  ```JavaScript
4
4
  var hoge = it => it + 3;
@@ -13,4 +13,31 @@
13
13
  JSの関数呼び出しはほぼ無視出来るコストらしいですが……
14
14
 
15
15
  JSでは関数を作るとthisの指している箇所が変わりますが、
16
- アロー関数はthisを作らないので、質問文の内部で平然とthis.handleClickのプロパティを取りに行って関数を叩いているのが確認できます。
16
+ アロー関数はthisを作らないので、質問文の内部で平然とthis.handleClickのプロパティを取りに行って関数を叩いているのが確認できます。
17
+
18
+ ---
19
+
20
+ 【追記】reactの場合
21
+
22
+ ただしReactの内部で使う時は話が変わってきます。
23
+
24
+ [Handling Events - React](https://reactjs.org/docs/handling-events.html)によると、
25
+ 親子関係を結ぶ時は再更新処理が増えるので注意しましょうとのことです。
26
+ 仕組みはこうです。
27
+
28
+ ```JavaScript
29
+ var a = it => it + 3;
30
+ var b = it => it + 3;
31
+ console.log(a == b); // false
32
+
33
+ var c = {};
34
+ var d = {};
35
+ console.log(c == d);
36
+ ```
37
+
38
+ 一見全く同じものにしか見えませんが、
39
+ Array、Object、Functionは作成する度に別オブジェクトとして見えないIDが割り振られ別個のものとして認識されます。
40
+
41
+ Reactの仕組み上、renderは何度も叩かれて毎回別の関数が生まれてしまうので、
42
+ 親のコンポーネントは前回のDOMと今回のDOMが同一であることが分からなくなってしまうようですね。
43
+ 即興のアロー関数ではなく、何か固定化した関数をはめ込むのがオススメだよと記載されています。