2012-08-02 36 views
0

如果我在onLoad函數中創建一個對象,然後嘗試在onChange函數內引用該對象,那麼該對象是'未定義的'...我如何引用它?另一個函數中的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.obj!)。

希望有幫助。

1
var obj; 

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