Вы даже можете сказать ему, какие аргументы функции получить, используя [functionName] .arguments:
(function(arg1, arg2, agr3){
console.log('args are:', arguments);
return function fn(){
function m(){
console.log(
'fn.arguments:', fn.arguments,
'm.arguments:', m.arguments,
'argumentsX:', arguments
);
};
m('mArg1', 'mArg2', 'mArg3', 'mArg4');
};
})
(1, 2, Math.PI) // invoke closure
('fnArg1', 'fnArg2', 'fnArg3', 'fnArg4'); // invoke "fn"
Каждая функция def переписывает ключевое слово arguments, чтобы иметь эту область между прочим (как видно с помощью "argumentsX
"бревно).