function makeBuffer() {
var text = '';
return function(piece) {
if (arguments.length == 0) { // вызов без аргументов
return text;
}
text += piece;
};
};
var buffer = makeBuffer();
// добавить значения к буферу
buffer('Замыкания');
buffer(' Использовать');
buffer(' Нужно!');
alert( buffer() ); // 'Замыкания Использовать Нужно!'
как buffer стала функцией ? если мы в переменную возвращаем функцию она становится функцией ? Если да, то это fynction expression ?
В переменную buffer
записано значение которое вернется из функции makeBuffer
, а из функции makeBuffer
возвращается функция. И, да, это замыкание.
А еще этот пример можно записать так:
var buffer = function() {
var text = '';
return function(piece) {
if (arguments.length == 0) { // вызов без аргументов
return text;
}
text += piece;
}
}();
// добавить значения к буферу
buffer('Замыкания');
buffer(' Использовать');
buffer(' Нужно!');
alert(buffer()); // 'Замыкания Использовать Нужно!'
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я не очень разбираюсьВозникает ошибка при загрузке изображений
Finding Rows with the Maximum Value of a Column by Group