如果我在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);
}
答案 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);
}