자바 스크립트에서 함수에 전달 된 매개 변수에서 변수 이름을 만들 수 있는지 궁금합니다. 다음과 같은 것 :자바 스크립트의 매개 변수에서 변수 이름 만들기
function createVar(number) {
var "number" + number;
}
createVar(1)
저는 스택 오버플로 및 프로그래밍에 익숙하기 때문에 도움이 될 것입니다.
자바 스크립트에서 함수에 전달 된 매개 변수에서 변수 이름을 만들 수 있는지 궁금합니다. 다음과 같은 것 :자바 스크립트의 매개 변수에서 변수 이름 만들기
function createVar(number) {
var "number" + number;
}
createVar(1)
저는 스택 오버플로 및 프로그래밍에 익숙하기 때문에 도움이 될 것입니다.
당신이 인덱스를 지정하고 인덱스의 이름 (해시)에 의해 값을 얻을 경우 연관 배열로 객체를 해석 할 수 있습니다 :
var x = Array();
x[number] = value;
단일 변수 이름은 프로그래머, 그리고 코드는 유지하기 어려울 것이다 코드에서 변수를 동적으로 설정하면 이해할 수 있습니다.
JavaScript에는 "연관 배열"이 없습니다. –
정직하게도, 왜 이것이 유용한 지 알지 못합니다. 변수를 사용할 때마다 번호 인수로 검색해야하기 때문입니다.
function createVar(number){
eval("var number" + number.toString() + ";");
}
그러나,이 변수는 함수 내에서 액세스 할 수 윈도우 객체에에게 글로벌 할당을 만들 :
그러나, 당신은 당신이 설명했다하지 정확한 방법이기는하지만, 그것을 할 수
을function createVar(number){
window["number" + number] = 15; // creates "global" variable
}
그러나 이전에 언급했듯이 숫자로 값을 계층화하려는 경우 유용 할 수는 없습니다. [/ i] 유용합니다. 정렬.
"전역 변수"의 경우는 window [ 'number'+ number] = 15;로 더 잘 풀 수 있습니다. –
@FelixKling 오, 알겠습니다 - 평가판을 피합니까? – theonlygusti
그럴 경우 예. 물론 지역 변수에는 작동하지 않습니다. 'eval'은 지역 변수를위한 유일한 방법 일 것입니다. 어쨌든 그렇게하는 것은 잘못된 것입니다. 그것이 가능하지 않다고 말한 이유입니다.) OP가 해결하려고하는 실제 문제를 안다면 우리는 실제 솔루션을 제공 할 수 있습니다. –
개체를 window
개체에 연결할 수는 있지만 전역 적입니다. 예 :
function createVar(varName, value) {
window[varName] = value;
}
createVar("test", "Hello World");
alert(test); // Outputs "Hello World".
왜 객체에 할당하지 않습니까? – cyan
@cyan 단순성, 왜냐하면 OP가 아마도 변수 이름에 액세스하기를 원하기 때문입니다. 예를 들어,'myObj.test' 또는'myObj [ "test"]'가 아닌'test'가 있습니다. –
아니요, 불가능합니다. –
@FelixKling 예입니다. – theonlygusti
이것은 [XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) 인 것 같습니다. 실제로 성취하려는 것을 알려주십시오. –