javascript范围:在函数后保留全局变量值

时间:2013-11-10 14:36:28

标签: javascript

当调用'斜边'函数时,'x'的值从1变为1.修正它以使'x'在全局范围内仍为1。

  var x = 1;
  var y = 1;

  function hypotenuse(a , b) {
    var cSquared = a * a + b * b;
    x = Math.sqrt(cSquared);
    return x;
  }

  hypotenuse(x, y);

2 个答案:

答案 0 :(得分:3)

要实现这一点,您需要做的就是使用函数中的var重新声明x变量。这将在函数范围内声明x变量,保持原始的,全局范围的x变量不变:

  var x = 1;
  var y = 1;

  function hypotenuse(a , b) {
    var cSquared = a * a + b * b,
        x = Math.sqrt(cSquared);
    return x;
  }

  hypotenuse(x, y);

或者,使用您最初采用的代码样式(拆分var声明):

  var x = 1;
  var y = 1;

  function hypotenuse(a , b) {
    var cSquared = a * a + b * b;
    var x = Math.sqrt(cSquared);
    return x;
  }

  hypotenuse(x, y);

有关此处发生的事情的详细信息,请阅读 javascript范围

答案 1 :(得分:1)

试试这个:

  var x = 1;
  var y = 1;

  function hypotenuse(a, b) {
    var cSquared = a * a + b * b;
    var x = Math.sqrt(cSquared);
    return x;
  }

  //console.log(hypotenuse(x, y));
  //console.log('x = ' + x);