А этот работает
function makeBuffer() {
var text = '';
return function buf(piece) {
buf.clear = function(){
text = '';
};
if (arguments.length == 0) { // вызов без аргументов
return text;
}
text += piece;
};
};
var buffer = makeBuffer();
// добавить значения к буферу
buffer('Замыкания');
buffer(' Использовать');
buffer.clear();
buffer(' Нужно!');
alert( buffer() ); // 'Замыкания Использовать Нужно!'
У вас во втором примере возвращается описание функции без метода clear