Почему arguments используем во внутренней ф-и?

Андрей Лисун

Разбирался с задачей. [https://jsfiddle.net/q4f3e5qj/]
```
function makeBuffer() {
var text = '';

return function(piece) {
if (arguments.length == 0) { // вызов без аргументов
return text;
}
text += piece;
};
};

var buffer = makeBuffer();

// добавить значения к буферу
buffer('Замыкания');
buffer(' Использовать');
buffer(' Нужно!');
alert( buffer() ); // 'Замыкания Использовать Нужно!'
```
Мы при вызове функции передаём параметр в виде строки. По идее этот парамент должен войти в псевдомассив arguments функции, которую мы вызываем(это makeBuffer), но в решении данной задаче arguments используеться во внутренней функции. Вопрос по параметру "piece". Я правильно понял, что он береться через замыкание у основной функции так как внутри блока он отсутствует и он являеться arguments[0] для makeBuffer?

Андрей Лисун 9 месяцев назадСпасибо 0
1 чел.