Malleys, просто пишет чушь ради чуши.
Например хипстерское дерьмо, типа:
const factorial = x => {
if (x === 1)
return 1;
else
return x * factorial(x - 1);
}
alert(factorial(5));
после чего решает проблему которой нет.
Нормальный человек напишет:
function factorial(x) {
if (x === 1)
return 1;
else
return x * factorial(x - 1);
}
и это будет работать всегда.
Даже если мы потом сделаем так:
function factorial(x) {
if (x === 1)
return 1;
else
return x * factorial(x - 1);
}
const f = factorial;
alert(f(5));
или так:
// factorial-module.js
function factorial(x) {
if (x === 1)
return 1;
else
return x * factorial(x - 1);
}
export default factorial;
// main.js
import f from './factorial-module';
alert(f(5));
Если мы хотим пулять функцию по разным переменным сразу после создания, но при этом не хотим засорять область видимости её оригинальным названием(почему?), то всегда можно сделать так:
const factorial = function fcallee(x) {
if (x === 1)
return 1;
else
return x * fcallee(x - 1);
}
const f = factorial;
const f2 = factorial;
alert(typeof fcallee);
alert(factorial(5));
alert(f(5));
alert(f2(5));
Нет никакой проблемы и никакого смысла в arguments.callee, и уж точно нет смысла в онанизме от
Malleys.