Как использовать переменную одной функции в другой функции, не будучи глобальной переменной? - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь выяснить, как использовать переменную age из функции вычисления возраста в функции выхода на пенсию.

 var year = prompt(" Enter year of birth: ");

function calcAge(Year){
    var age = 2019 - year;
    console.log(" Your age is " + age);
}

var retAge = prompt(" What age do you plan to retire? ");

function calcRet(retAge){
    var yearsToRet = retAge - age;
    console.log(" You have " + yearsToRet + " to retire. ");
}

calcAge();
calcRet();

1 Ответ

0 голосов
/ 23 января 2019

У вас нет прямого доступа к переменной, поскольку она находится в области действия этой функции.Однако вы могли бы сделать эти функции возвращаемыми вместо входа в функции.Преимущество здесь заключается в модульности.Вам не нужно постоянно обновлять свои записи в журнале, вы можете просто использовать их как функции расчета.

Например:

var year = prompt(" Enter year of birth: ");

function calcAge(Year){
    return 2019 - year;
}

var retAge = prompt(" What age do you plan to retire? ");

function calcRet(){
    return retAge - calcAge(year);
}

console.log('Your age is: ' + calcAge());
console.log(" You have " +  calcRet()+ " years to retire. ");

Другой вариант - отслеживать значения через главный объект.Это своего рода Сорта, однако, использует глобальный var.

var responses = {}
responses['year'] = prompt(" Enter year of birth: ");

function calcAge(){
    responses['age'] = 2019 - responses.year;
    console.log(" Your age is " + responses.age);
}

responses['retAge'] = prompt(" What age do you plan to retire? ");

function calcRet(retAge){
    var yearsToRet = responses.retAge - responses.age;
    console.log(" You have " + yearsToRet + " to retire. ");
}

calcAge();
calcRet();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...