2016-10-13 2 views
0

I 이벤트와 문자열에서 함수를 작성해야합니다 다음과 같은 기능이 -이 함수 문자열의 예 것이벤트와 문자열에서 기능을 만들기

function getFuncDefEvent(jsFunctionString){ 
    if(jsFunctionString!= undefined) { 
     return function(event){jsFunctionString}; 
    } 
} 

:

jsFunctionString = "doSomething(event); doSomethingElse(); 

I을 onclick 이벤트에 첨부했지만 이벤트를 발생시키지 않습니다. 내가 놓친 게 있니?

+0

String이 기대하는 것은 무엇입니까? 이 문제를 해결하려면 ['eval()'] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/eval)을 사용해야 할 것으로 생각되지만 보안 문제는 있습니다. (사용자가 액세스 할 수 있고 사용자가 편집 할 수있는 코드는 신뢰할 수 없거나 신뢰할 수 없어야합니다.) 가능한 중복 : http://stackoverflow.com/questions/7650071/is-there-a-way-to-create-a-function-from-a-string-with-javascript –

답변

3

문자열로 함수를 만드는 방법이 아닙니다.

return new Function(['event'], jsFunctionString); 
0

편집 : 당신은 Function constructor를 사용할 필요가 검토에 , 나는 Barmar의 대답은 아마 내 대답은 아래보다 더 정확하다고 생각합니다. 나는 후손을 위해 남겨 둘 것이지만, 아마도 그는 올바른 것으로 선택되어야 할 것이다.


자바 스크립트가 작동하는 방법이 아니다

. 임의의 문자열을 자바 스크립트 코드로 평가하려면 eval을 사용해야합니다. 그러나 널리 퍼져있는 지혜의 대부분은 eval is evil입니다.