2017-03-23 2 views
0

나는 eval 함수를 사용하여 달성 할 수있는 게시물을 읽었지만 작성자는 사용법에 대해서도 경고했습니다. 중요한지는 모르겠지만 브라우저와 웹팩을 사용하고 있습니다. 어떻게 할거 니?문자열에서 CommonJs 모듈의 함수를 호출하는 방법

const init = (fname) => { 
    console.log(fname); //'myFunction' 
    // How do I call myFunction from string here? 
}; 

const myFunction =() => {}; 

module.exports = { 
    init 
}; 

답변

1

트릭은 함수 이름을 실제 함수에 매핑하는 것입니다.

const functionMap = {myFunction}; 

const init = (fname) => { 
    console.log(fname); //'myFunction' 
    functionMap[fname]() // call functionMap.myFunction 
}; 



const myFunction =() => {}; 

module.exports = { 
    init 
}; 
+0

감사합니다. 그것은 작동하지만 로컬 모듈 함수를 참조하는 네임 스페이스 같은 것이 있는지 궁금합니다. –

+0

위험합니다. 다른 사람들이 부를 수있는 것을 명시해야합니다. 정말로 원한다면,'''global'' 변수를 사용하십시오 : https://nodejs.org/api/globals.html#globals_global – meltuhamy

+0

오, 고마워, 좋은 하루 되라, 친구! –

관련 문제