Вы не объяснили , почему вы не хотите "передавать параметр", или что именно точно является требованием не передавать параметр. Я предполагаю, что вы хотите сохранить динамическое возвращаемое целое число (или другое значение) в некотором смысле, специфичном для вашего контекста.
Вот как я мог бы предложить это сделать, хотя пока неясно, хорошая ли это идея:
function tellYourAge() {
return function(name)
{
let ages = {
Mahdi: 18,
Samuel: 20,
Jon: 21,
};
return ages[name];
}
}
{
let makePopulation = function(names){
let pop = {};
names.forEach(function(n){
pop[n] = tellYourAge().bind(pop, n);
});
return pop;
};
let Population = makePopulation("Mahdi", "Samuel", "Jon");
Population.Mahdi(); // It should log 18
Population.Samuel(); // It should log 20
Population.Jon(); // It should log 21
}