我无法从全局范围访问函数中的变量。通常我可以访问其他函数中的变量。
如何在全局范围内使用以下代码中的 str
变量?
<html>
<script>
function myf(){
str = "Change";
document.write(str);
}
document.write(str); // can not access str
</script>
<input type="button" value="OPEN" onclick="myf();">
</html>
最佳答案
全局声明 str
以显式设置其范围。
var str;
function myf(){
str = "Change";
document.write(str);
}
myf();
document.write(str); // can access str
请记住,如果不调用myf()
,str
的值将保持未定义
。
一般来说,由于依赖性问题,您不想修改函数内的全局变量。考虑这样的事情:
function myf() {
return "Change";
}
document.write(myf());
或者如果您需要状态:
function myf() {
var state = "Change";
return {
get_state: function () {
return state;
},
set_state: function () {
//
}
}
}
var f = myf();
document.write(f.get_state());
关于javascript - 如何从全局范围访问函数中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25444057/