【问题标题】:update global variable from a function in the javascript从javascript中的函数更新全局变量
【发布时间】:2010-05-12 13:56:58
【问题描述】:

情况如下:

我有一个具有局部变量的函数。 我想将该值分配给全局变量,然后我们将其值分配给另一个函数。

代码如下:

global_var = "abc";

function loadpages()
{
    local_var = "xyz";
    global_var= local_var;
}

function show_global_var_value()
{
    alert(global_var);
}

我在 HTML 页面中调用 show_global_var_value() 函数,但它显示 value = "xyz" 而不是 "abc"

我做错了什么?

【问题讨论】:

  • 您的local_var 是全球性的。使用 var 关键字声明变量以使其成为本地变量:var local_var = "xyz";
  • 我不明白你的问题出在哪里。它正在做你似乎想要的。顺便说一句,local_var 不是本地的。您需要使用 var 声明它以使其成为本地:val local_var = "xyz";
  • 你的问题毫无意义。请描述您认为警报应显示“abc”的原因。具体来说,如果不将global_var 设置为“xyz”,您认为loadpages 函数应该做什么?
  • 我很确定他来自其他编程语言,因此很难描述所需的行为。如果是这种情况,并且期望的行为是将全局变量设置为不同的值,但仅限于本地范围,那么请参阅下面的答案。
  • 这是你的问题吗? stackoverflow.com/questions/14220321/…

标签: javascript function variables global local


【解决方案1】:

除了前面提到的用var声明局部变量之外,你需要做的是JS 1.7中引入的let声明

var global_var = "abc";

function loadpages()
{
    var local_var = "xyz";
    let global_var= local_var;
    console.log(global_var); // "xyz"
}

function show_global_var_value()
{
    console.log(global_var); // "abc"
}

注意:目前(2014-01)要使用JS 1.7,您必须在脚本标签中声明版本:

<script type="application/javascript;version=1.7"></script>

不过,let 现在是 ECMAScript Harmony 标准的一部分,因此有望在不久的将来完全可用。

【讨论】:

  • 我从未见过版本声明。这绝对是不是必须的
猜你喜欢
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多