0

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

2 回答 2

2

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

var obj;

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

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

希望有帮助。

于 2012-08-02T02:19:10.233 回答
1
var obj;

function loaded(){             
    obj = new ObjectExample();
}
function updateObject(event){
    console.log(obj);
}
于 2012-08-02T02:18:18.550 回答