2017-12-30 59 views
1

나는 Javascript에 대한 완전한 초보자이므로 그 능력이 무엇인지 알지 못한다. 어떤 도움을 많이 주시면 감사하겠습니다!다른 함수에서 전달 된 인수를 사용하여 함수의 이름을 지정할 수 있습니까?

제목에서 알 수 있듯이 함수 내부의 다른 함수의 이름을 함수의 인수로 전달하려고합니다. 아래의 방법은 명백한 이유 때문에 작동하지 않지만 나는 그것이 인 것을 전달한다고 생각합니다.을 시도합니다. 함수 이름은 내가 작업하고있는 프로젝트에 대해 매우 구체적이어야합니다.

function mainFunc(param1) { 
 
    function param1() {} 
 
}

감사합니다!

편집 : 내 작업에서 페이퍼없이 갈 소프트웨어는 자바 스크립트 스크립팅 엔진을 사용합니다. 섹션 A의 체크 박스 중 적어도 하나를 체크

경우, 다음 섹션 B에서 적어도 하나의 확인란을 선택해야합니다

가 나는를 작성해야 : 위해서는 나 같은 간단한 일을하기 위해 함수가 소프트웨어의 작동 방식으로 인해 양식의 각 확인란 필드마다 기능 이름은 GUI를 통해 확인란에 지정한 이름과 관련이 있어야합니다. 특정 이름을 가진 다른 함수를 작성하고 그 함수를 호출하는 함수를 작성하고 싶습니다.

function mainFunc(funcName) { 
 
    function 'funcName'() { 
 
    //do stuff; 
 
    } 
 
    
 
    'funcName'() 
 

 
} 
 

 

 
mainFunc('Checkbox1')

은 어쩌면이게 내가 할 노력하고있어에 조금 더 명확하게 도움이 될 것입니다. 처음으로 명확하지 않은 것에 대해 유감스럽게 생각합니다.

+3

함수 아래의 예와 같이 객체. 그리고 다른 함수 안에 중첩 된 지역 함수는 다른 곳에서는 볼 수 없습니다. 질문에서 설명하는 것을하고 싶지 않을 이유가 없습니다. 당신은 당신이 _ 달성하고자하는 것이 무엇인지에 대해 토론 할 수 있습니까? 그렇지 않으면 지금까지 게시 된 것과 같은 답변을 얻을 수 있지만 유용한 아이디어가 있지만 실제 목표와 관련이 없을 수도 있습니다. –

답변

0

당신은 당신의 문제를 해결하기 위해 많은 옵션이 옵션은

function mainFunc(param1,param2) { 
 
    return { 
 
     [param1]:function() { 
 
      console.log(" I am function from " + param1) 
 
     }, 
 
     [param2] : function() { 
 
      console.log("I am function from " + param2) ; 
 
    } 
 
    } 
 
} 
 
let hello = 'hello' ; 
 
let greet = 'anything' ; 
 
let functions = mainFunc(hello,greet); 
 
functions['hello'](); 
 
functions['anything'](); 
 
functions[hello](); 
 
functions[greet]();

아래 모양의 예에서 mainFun에 전달 된 매개 변수를 사용하여 명명 된 기능을 가진 객체를 반환하는 것입니다

하나

많은 매개 변수가있는 경우 mainFun 또한 t를 사용하여 해결할 수도 있습니다 그는 인수는 그 이름이 무엇인지 상관하지 않는다

function mainFun(par1) { 
 
    let myObj = {}; 
 
    for(let i = 0 ; i<arguments.length;i++){ 
 
     console.log(arguments[i]); 
 
     myObj[arguments[i]] =()=> { 
 
      console.log('You call me from ' + arguments[i]); 
 
     } 
 
    } 
 
    return myObj ; 
 
} 
 
let functions = mainFun('a','b','c','d'); 
 
functions['a'](); 
 
functions['b'](); 
 
functions['c'](); 
 
functions['d']();