2016-07-26 5 views
-1

다른 두 파일에서 사용할 수있는 도우미 함수가있는 파일이 있습니다. 나는 기능을 가져올,하지만 난이 일을하는 데있어 방법은 적합하지 않습니다 :어떻게 접두어없이 변수가 필요합니까?

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

나는 helper 접두사 (예를 들어, ok())없이 기능을 사용할 수 있도록하고 싶습니다. 어떻게해야합니까?

편집 :가 7 개 도우미 기능은 현재, 그 수는 그래서 별도의 파일을 사용하는 목적을 망가 뜨리는 것 같아 손으로 각 기능을 지정하여 미래 성장 할 수 있습니다.

+1

왜 다운 투표입니까? 나는 사람들이 내가이 일을해야한다고 생각하지 않는다는 느낌을 갖지만 아무도 이유를 말하지 않는다. – Zaz

답변

-4

보고 :

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

더 참조 가져 오려는 각 기능을 지정하지 않아도되는 솔루션을 제공했습니다. 이상적인 솔루션은 아니지만 작동합니다.

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

이것은 작동하지 않습니다. 어쨌든 (아주 특별한 경우에) 유용한 아이디어가 될 수 있습니다. – Joan

6

는 ES2015, 파이썬이나 다른 언어와는 달리, 다른 파일에서 특정 기능을 내보내고 직접 사용할 수 없습니다. 당신이 ES5에서 할 수있는 것은하는 것입니다 내가 당신이 helpers.js에 가지고있는 다양한 기능의 단일 개체를 수출하는 가정입니다

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

:

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

ok(...); 
... 

또는 당신은 oneliners을 선호하는 경우.

반면 ES2015에서는 약간 다른 방식으로 작성해야합니다.

먼저, helpers.js 요구 사항은 다음과 같이 개별적으로 기능을 내보내려면 :

export function ok(args) { 
    ... 
} 

export function log(args) { 
    ... 
} 

을 다음 주 스크립트 : 아무도 아직 없기 때문에 https://developer.mozilla.org/en/docs/web/javascript/reference/statements/import

+1

대답의 첫 부분에 대해서는 더 짧은 버전이 있습니다 :'var ok = require ('./helpers'). ok' – DrakaSAN

+0

@DrakaSAN : 답을 편집 하시겠습니까 (: 맞습니다!) – mauris

관련 문제