2014-10-17 4 views
0

함수에 동적 이름을 만들 수 있습니까? 예 :동적 자바 스크립트 기능 만들기

var name = 'test1'; 

function [name]() { ..... }; 

이제는 test1()을 호출 할 수 있습니다. 이 하나는 함수 이름 {.....}을 실행합니다. 그러나 [이름]과 나는

var name = 'test2'; 

I합니다 (TEST2를 호출 할 수 있습니다)을 변경하는 경우 함수가

function test1() { ..... }; 

로 실행됩니다 것을 의미 TEST1, 등; 이 하나는 함수 이름 {.....}을 실행합니다. test2로 [name]을 지정하면 함수가

function test2() { ..... }; 

으로 실행될 수 있습니다. 웹 브라우저에서 작업하는 경우

+1

try [window [이름] = function() {...} ' –

+0

아니, 할 수 없다. 평가와 같은 방법이 없습니다. 그러나 함수를 정의하고이 함수에 대한 참조를 동적으로 명명 된 속성에 객체에 저장할 수 있습니다. –

답변

0
var test1 = function() {...}; 
var test2 = test1; 

// now both of the following work 

test1(); 
test2(); 

당신은 또한 window, 전역 객체에 문자열 값으로이 기능을 할당 할 수 있습니다. 이와 같이

var originalFunction = function() {....}; 
var newName = "foo"; 
window[newName] = originalFunction; 
// now both of the following work. 
foo(); 
originalFunction(); 
+0

의견이없는 투표가 이유가 무엇입니까? 코드가 작동하고 이것이 OP가 요청한 것이라고 생각합니다. http://jsfiddle.net/4n1xowok/ –

+0

데이비드 감사합니다. 나는 그것을 시도 할 것이다. ; 그런데 나는 그것을 downvoting 것은 아니었다.) – user2062455

+0

뉘앙스 문제가 더 커서'window [thename] = function() {}'은'function thename() {}'과 같지 않습니다. 다른 것은 속성에 익명 함수에 대한 참조를 저장하는 것입니다. 그 차이가 op에 중요하지 않을 수 있습니다. –