2011-07-06 8 views
0

Google지도에서 작업 중이므로 항목 배열을 만들어야합니다. 다음은 내 의사 코드입니다.자바 스크립트에서 전역 변수에 액세스 할 때 문제가 발생했습니다.

<script> 
var myvar=new array(); 

function initialize(){ 
    for i=1 to 10 
    { 
     callAnotherFunct(i); 
    } 

    access myvar() here; 
} 


function callAnotherFunct(i){ 
    myvar=array_element_i; 
} 

</script> 

myvar가 전역 변수로 작동 할 것으로 기대하고 있지만 그렇지 않습니다. initialize()에서 myvar에 대한 값을 가져올 수 없습니다.

내가 뭘 잘못하고 있니?

+1

의 좀 생각할 수있는 것 있습니까? –

+2

이이 의사 코드인지 확인하는 데 도움이 될까요? bc 이것이 실제 코드라면 아무 것도하지 않겠지 만 완전히 잘못되었습니다 ** – Neal

+0

어떻게 값에 액세스하고 있습니까? –

답변

1

을하는 데 도움이 9

희망은 당신이 달성하기 위해 노력하고 있었는지 잘 모르겠지만, 나는 몇 가지 수정을 할 수 있었고,이 예제에서 전역 변수에 액세스 할 수 있었다 : http://jsfiddle.net/pKU6A/

var myvar=new Array(); //Array should be uppercase 

function initialize(){ 
    for (var i=1; i < 10; i++) //incorrect for loop syntax 
    { 
     callAnotherFunct(i); 
    } 

    alert(myvar); 
} 


function callAnotherFunct(i){ 
    myvar[i] = i; //local variable was not defined and index of array must be assigned 
} 

initialize(); //needed to call global function to kick it off 
1

는 바이올린 : - 의사 코드로 http://jsfiddle.net/AKKHB/

당신이 잘못된 일을 할 수있는 무엇을 말할 어렵다

0
window.myvar = []; // don't use new Array() 

function initialize(){ 
    for i=1 to 10 
    { 
     callAnotherFunct(i); 
    } 

    //window.myvar or myvar here should work 
} 
1

확인 될 것으로 보인다.

나는 코드를 해제 pseudified하고 그것을 잘 작동합니다 : 당신이 초기화 호출 할 때

var myvar=new Array(); 

function initialize(){ 
    for (i=1; i < 10; i++) 
    { 
    callAnotherFunct(i); 
    } 
    alert(myvar); 
    //access myvar() here; 
} 

function callAnotherFunct(i){ 
    myvar.push(i); 
} 

은() -이 1,2,3,4,5,6,7,8에 경고합니다,

2

pseudo-schmeudo.

var myvar = []; 

function initialize(){ 
    for (var i=0; i < 10; i++) 
    { 
     callAnotherFunct(i); 
    } 

    alert(myvar[0]); 
    alert(myvar[9]); 
} 


function callAnotherFunct(i){ 
    myvar[i]=i + 'pseudo-schmeudo'; 
} 

initialize(); 

Fiddle-schmiddle.

0

나는 네임 스페이스 문제라고 생각합니다. 이

window.project = window.project || {}; 
project.vars = project.vars || {}; 

Then you will have a namespace declaration, so you can do 

project.vars.myVar = new Array(); 

같은 유일한 문제는 내가, 우리가 실제 코드를 볼 수

관련 문제