JavaScript + Reference对象在另一个函数中?

时间:2012-08-02 02:13:32

标签: javascript

如果我在onLoad函数中创建一个对象,然后尝试在onChange函数中引用该对象,该对象未定义' ...如何引用它?

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 个答案:

答案 0 :(得分:2)

您在这里处理的是可变范围。对象'obj'仅存在于'loaded'函数中,因为它是声明它的位置。解决此问题的一种快速简便的方法是为变量提供更大的范围。例如,全球范围。

var obj;

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

'obj'变量现在存在于'window'对象上(尝试在浏览器控制台工具中输入window.obj!)。

希望有所帮助。

答案 1 :(得分:1)

var obj;

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