объем кода JavaScript: сохранить глобальную переменную значение после того как функция



Когда функция "гипотенуза" вызывается, значение " x " изменяется от 1. Исправить его так, что " Х " равно 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);
294   2  

2 ответов:

Все, что вам нужно сделать, чтобы это произошло, - это повторно объявить переменную x, используя var в функции. Это будет объявлять переменную 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 scope

Попробуйте это:

  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);

Comments

    Ничего не найдено.