2016-07-26 7 views
-1

2つの他のファイルで使用するヘルパー関数を持つファイルがあります。私はhelper接頭辞(例えばok())なしで機能を使用できるようにしたいと思いどのようにプレフィックスなしの変数を必要としますか

helper = require('./helpers') 
helper.log() 
helper.ok() 
... 

:私は、関数をインポートしたいのですが、私はこれを行うために使用されるよ方法は理想的ではありません。これどうやってするの?

編集:あり7つのヘルパー関数は、現在、その数は非常に手で各機能を指定して、今後の成長があり、それは別のファイルを使用しての目的に反しように思えます。

+1

なぜダウン投票ですか?人々は私がこれをしなければならないと思っているという感情を得るが、誰も理由を言っていない。 – Zaz

答えて

-4

を見てインポートする各関数の指定を含まないソリューションを提供していますが、ここでは理想的ではないソリューションがあります:

const helpers = require("./lib") 
for (let k in helpers) { 
    eval(`var ${k} = helpers.${k}`) 
} 
+0

これは動作しませんとにかく(非常に特殊なケースでは)役に立つアイディアかもしれませんが、 – Joan

5

あなたはobject destructuringを使用することができます。

const {log, ok} = require('./helpers'); 
log(); 
ok(); 
6

はES2015、Pythonや他の言語とは異なり、あなたは別のファイルから特定の関数をエクスポートし、それを直接使用することはできません。あなたはES5で行うことができますが、以下のとおりです。私はあなたがhelpers.jsに持っている様々な機能の単一のオブジェクトをエクスポートしていると推定され

var ok = require('./helpers').ok 

helper = require('./helpers') 
var ok = helper.ok; 

ok(...); 
... 

それともonelinersを好む場合。

ただし、ES2015では、わずかに別のものを書き込む必要があります。あなたのメインスクリプトで次に

export function ok(args) { 
    ... 
} 

export function log(args) { 
    ... 
} 

まず、あなたのhelpers.jsニーズ別に、このような機能をエクスポートする

import {ok, log} from './helpers'; 
ok(...); 
log(...); 

もっと見る:誰もまだ持っていないとしてhttps://developer.mozilla.org/en/docs/web/javascript/reference/statements/import

+1

答えの最初の部分について、より短いバージョンが存在します: 'var ok = require( './helpers')。ok' – DrakaSAN

+0

@DrakaSAN:答えを編集してもよろしいですか(:それは正しいですか? – mauris