Javascript全局变量未定义,为什么?

时间:2015-05-21 08:55:58

标签: javascript

您好,请看下面的代码



var vsize; //global variable
function veg7() {
  vsize = 7;
}

function veg10() {
  vsize = 10;
}

function getCBP() {
  if (vsize == 7) {
    alert(vsize);
  } else {
    alert(vsize);
  }
}

<input type="button" onclick="getCBP()" value="getCBP()">

<div class="main-menu">
  <ul style="padding-left:13px; position:relative;top:41px;margin-bottom:0px;">

    <li>
      <a href="#" onclick="veg7()">7" Veg</a>
    </li>
    <li>
      <a href="#" onclick="veg10()">10" Veg</a>
    </li>
    <li>
      <a href="#" onclick="nonveg7()">7" Non Veg</a>
    </li>
    <li>
      <a href="#" onclick="nonveg10()">10" Non Veg</a>
    </li>
    <li>
      <a href="#" onclick="pizaxx()">Pizaxx</a>
    </li>
    <li>
      <a href="#" onclick="sideOrder()">Side Orders</a>
    </li>

  </ul>
</div>
&#13;
&#13;
&#13;

如果任何事件访问函数veg7()或函数veg10()(它是动态的)并相应地更改vsize的值,那么为什么我将vsize作为未定义。

请帮助我..我需要在getCBP()中使用vsize的值。

2 个答案:

答案 0 :(得分:2)

未定义,但声明。 在为变量vsize赋值之前,您正在执行函数。

您应该在运行var vsize = 0之前声明veg(或任何值),或运行getCBP个功能之一。

答案 1 :(得分:1)

尝试var vsize = -1;

如果现在看到-1而不是undefined,则表示您的函数永远不会被调用。

注意:我正在使用-1,因为这比“0”更容易被发现为“错误”。