Development Tip

JavaScript에서 이름 문자열로 동적으로 전역 변수 가져 오기

yourdevel 2020. 10. 26. 21:23
반응형

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.

참고URL : https://stackoverflow.com/questions/1920867/get-global-variable-dynamically-by-name-string-in-javascript

반응형