javascript - 如何从全局范围访问函数中的变量?

标签 javascript variables global-variables

我无法从全局范围访问函数中的变量。通常我可以访问其他函数中的变量。

如何在全局范围内使用以下代码中的 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/

相关文章:

javascript - 如何在React Material-UI自动完成中实现最小字符长度功能

javascript - VueJs - Element Ui - 表格相同 Prop 不同过滤器

javascript - 对javascript局部变量与全局变量感到困惑

c++ - 先前在 cuda c++ 中定义的外部全局设备变量

python - 如何在python中保留全局变量的更新值

javascript - JQuery Datatable - 操作 Colvis 按钮的 CSS

javascript - 数据表中的事件监听器拒绝工作

variables - 在 LESS 中解析动态变量

c# - MVVMCross 将值传递给具有 2 个构造函数的 ViewModel

java - 过度使用 final 会弊大于利吗?