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