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

回答編集履歴

1

コメント対応

2018/02/06 07:22

投稿

miyabi-sun
miyabi-sun

スコア21478

answer CHANGED
@@ -15,4 +15,47 @@
15
15
  ただ、ES6モジュールの考え方は少々難解なので、もし初耳ならぐぐったりしてES6やES6モジュールやその使い方を調査してみてください。
16
16
 
17
17
  また、あまり推奨ではないですがグローバル変数領域で関数として宣言する方法もあります。
18
- JSでは関数や変数を利用した時に、そのスコープ内に無ければ外のスコープと辿っていき、最終的にはグローバル変数を確認する仕様になっています。
18
+ JSでは関数や変数を利用した時に、そのスコープ内に無ければ外のスコープと辿っていき、最終的にはグローバル変数を確認する仕様になっています。
19
+
20
+ ---
21
+
22
+ 【コメント部分】
23
+
24
+ Webpack使ってるなら話が速いですね。
25
+
26
+ > ```JavaScript
27
+ > import React from 'react';
28
+ > import A from './A.js'; // このファイルに外出ししたい
29
+ > var B = React.createClass({
30
+ > getWindowSize:function() {
31
+ > // 共通化したい処理
32
+ > },
33
+ > render:function() {
34
+ > return ()
35
+ > }
36
+ > });
37
+ > ```
38
+
39
+ importすると、そのスコープのA変数に外出しした関数が詰まっています。
40
+ なので下記のように修正します。
41
+
42
+ A.js
43
+
44
+ ```JavaScript
45
+ export default function () {
46
+ // 共通化したい処理
47
+ }
48
+ ```
49
+
50
+ 本編
51
+
52
+ ```JavaScript
53
+ import React from 'react';
54
+ import A from './A.js';
55
+ var B = React.createClass({
56
+ getWindowSize: A, // 共通化した関数Aを指定
57
+ render:function() {
58
+ return ()
59
+ }
60
+ });
61
+ ```