2015-01-25 5 views
0

자바 스크립트에서 함수에 전달 된 매개 변수에서 변수 이름을 만들 수 있는지 궁금합니다. 다음과 같은 것 :자바 스크립트의 매개 변수에서 변수 이름 만들기

function createVar(number) { 
var "number" + number; 
} 
createVar(1) 

저는 스택 오버플로 및 프로그래밍에 익숙하기 때문에 도움이 될 것입니다.

+0

아니요, 불가능합니다. –

+1

@FelixKling 예입니다. – theonlygusti

+4

이것은 [XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) 인 것 같습니다. 실제로 성취하려는 것을 알려주십시오. –

답변

0

당신이 인덱스를 지정하고 인덱스의 이름 (해시)에 의해 값을 얻을 경우 연관 배열로 객체를 해석 할 수 있습니다 :

var x = Array(); 
x[number] = value; 

단일 변수 이름은 프로그래머, 그리고 코드는 유지하기 어려울 것이다 코드에서 변수를 동적으로 설정하면 이해할 수 있습니다.

+1

JavaScript에는 "연관 배열"이 없습니다. –

0

정직하게도, 왜 이것이 유용한 지 알지 못합니다. 변수를 사용할 때마다 번호 인수로 검색해야하기 때문입니다.

function createVar(number){ 
    eval("var number" + number.toString() + ";"); 
} 

그러나,이 변수는 함수 내에서 액세스 할 수 윈도우 객체에에게 글로벌 할당을 만들 :

그러나, 당신은 당신이 설명했다하지 정확한 방법이기는하지만, 그것을 할 수

function createVar(number){ 
    window["number" + number] = 15; // creates "global" variable 
} 

그러나 이전에 언급했듯이 숫자로 값을 계층화하려는 경우 유용 할 수는 없습니다. [/ i] 유용합니다. 정렬.

+0

"전역 변수"의 경우는 window [ 'number'+ number] = 15;로 더 잘 풀 수 있습니다. –

+0

@FelixKling 오, 알겠습니다 - 평가판을 피합니까? – theonlygusti

+0

그럴 경우 예. 물론 지역 변수에는 작동하지 않습니다. 'eval'은 지역 변수를위한 유일한 방법 일 것입니다. 어쨌든 그렇게하는 것은 잘못된 것입니다. 그것이 가능하지 않다고 말한 이유입니다.) OP가 해결하려고하는 실제 문제를 안다면 우리는 실제 솔루션을 제공 할 수 있습니다. –

0

개체를 window 개체에 연결할 수는 있지만 전역 적입니다. 예 :

function createVar(varName, value) { 
    window[varName] = value; 
} 

createVar("test", "Hello World"); 
alert(test); // Outputs "Hello World". 
+0

왜 객체에 할당하지 않습니까? – cyan

+0

@cyan 단순성, 왜냐하면 OP가 아마도 변수 이름에 액세스하기를 원하기 때문입니다. 예를 들어,'myObj.test' 또는'myObj [ "test"]'가 아닌'test'가 있습니다. –