JSでは関数とメソッドは明確に区別されています。
- 関数: 単体で存在する
- メソッド: インスタンスに紐付く
現状わからず、同じ関数をAにもBにも書いている状態です。
今回のケースはインスタンスに依存していないようですね。
この場合のケースならば関数が適切でしょう。
Reactを実用しているならBrowserifyやWebpackを利用していますか?
そうであれば、ES6モジュールによる外部ファイルの読み込み機能を使いましょう。
ただ、ES6モジュールの考え方は少々難解なので、もし初耳ならぐぐったりしてES6やES6モジュールやその使い方を調査してみてください。
また、あまり推奨ではないですがグローバル変数領域で関数として宣言する方法もあります。
JSでは関数や変数を利用した時に、そのスコープ内に無ければ外のスコープと辿っていき、最終的にはグローバル変数を確認する仕様になっています。
【コメント部分】
Webpack使ってるなら話が速いですね。
JavaScript
1import React from 'react';
2import A from './A.js'; // このファイルに外出ししたい
3var B = React.createClass({
4 getWindowSize:function() {
5 // 共通化したい処理
6 },
7 render:function() {
8 return ()
9 }
10});
importすると、そのスコープのA変数に外出しした関数が詰まっています。
なので下記のように修正します。
A.js
JavaScript
1export default function () {
2 // 共通化したい処理
3}
本編
JavaScript
1import React from 'react';
2import A from './A.js';
3var B = React.createClass({
4 getWindowSize: A, // 共通化した関数Aを指定
5 render:function() {
6 return ()
7 }
8});
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/06 06:58
2018/02/06 09:15
2018/02/06 09:17
2018/02/06 13:57