반응형
JavaScript에서 이름 문자열로 동적으로 전역 변수 가져 오기
<script>
//in one script
var someVarName_10 = 20;
</script>
변수 이름으로 다른 스크립트에서이 변수에 액세스하고 싶습니다. 창 개체가 간단하면 지역 변수로 가능합니까?
나는 다음과 같은 코드 로이 var에 액세스한다는 것을 의미합니다.
<script>
alert(all_vars['someVar' + 'Name' + num]);
</script>
이런 일을 하시겠습니까?
<script>
//in one script
var someVarName_10 = 20;
alert(window["someVarName_10"]); //alert 20
</script>
업데이트 : OP가 질문을 편집했기 때문에.
<script>
num=10;
alert(window['someVar' + 'Name_' + num]); //alert 20
</script>
나는 모든 사람들이 전역 var 생성에 대해 조언하고 있으며 이것은 변수가 전역 네임 스페이스로 누출 될 것임을 알았습니다. 클래스 이름이나 변수 만 동적으로 생성 할 때 쉽게 로컬로 유지할 수 있습니다.
this['className'] = 123;
또는
this['varName'] = 123;
이름 간격은 다음과 같습니다.
vars = {};
vars['varName'] = 123;
vars.varName // 123
<script>
var someVarName_10 = 20;
var num = 10;
alert(eval('someVar' + 'Name_' + num)); //alert 20
</script>
글쎄, 디버깅 목적으로 만 , 당신은 이와 같은 것을 할 수 있습니다. 일부 변수는 비공개 (var)로 유지되어야하는 클래스 개발 중에 사용합니다. 이것은 지역 변수 (및 저주 전역)에서도 작동합니다.
function MYCLASS(){
var a=1, b=2, c=3;
this.public = "variable";
this.debug = function(sVar){
return eval(sVar);
}
}
var myThing = new MYCLASS();
myThing.debug('a') //return 1
myThing.debug('b') //return 2
myThing.debug('c') //return 3
If this is what you said:
<script type="text/javascript">
var hello = 'test';
</script>
<script type="text/javascript">
alert (hello);
</script>
It works because script are finally available to the document and you can access their vars.
반응형
'Development Tip' 카테고리의 다른 글
중괄호가있는 Javascript (ES6) const (0) | 2020.10.26 |
---|---|
숫자를 포함 할 수있는 문자열을 기준으로 정렬 (0) | 2020.10.26 |
_some 필드에서만 Enter 키를 통한 양식 제출 비활성화 (0) | 2020.10.26 |
Tortoise SVN : 'theirs'를 사용하여 갈등을 해결합니다. (0) | 2020.10.26 |
Jquery는 문자열로 시작하는 모든 ID를 찾으십니까? (0) | 2020.10.26 |