2012-08-02 4 views
0

onLoad 함수에서 객체를 만든 다음 onChange 함수에서 해당 객체를 참조하려고하면 객체가 'undefined'입니다 ... 어떻게 참조합니까?JavaScript + 다른 함수의 참조 객체?

HTML :

<body onLoad="loaded()"> 
    <select onChange="updateObject(event)"> 
     <option value="v1">--v1--</option>   
     <option value="v2">--v2--</option> 
    </select> 
</body> 

JS는 :

function loaded(){    
    var obj = new ObjectExample(); 
} 
function updateObject(event){ 
    console.log(obj); 
} 

답변

2

당신이 여기에서 다루고있는 것은 변수 범위입니다. 'obj'객체는 'loaded'함수 내에서만 선언 된 위치에 존재합니다. 이 문제를 해결하는 빠르고 쉬운 방법은 변수에 더 큰 범위를 제공하는 것입니다. 예 : 글로벌 범위.

var obj; 

function loaded(){     
    obj = new ObjectExample(); 
} 
function updateObject(event){  
    console.log(obj); 
} 

이제 'obj'변수가 'window'객체에 있습니다 (브라우저 콘솔 도구에서 window.obj를 입력 해보십시오!).

희망을 얻었습니다.

1
var obj; 

function loaded(){    
    obj = new ObjectExample(); 
} 
function updateObject(event){ 
    console.log(obj); 
} 
관련 문제