Показать сообщение отдельно
  #1 (permalink)  
Старый 20.11.2018, 17:34
Интересующийся
Отправить личное сообщение для TheOwl Посмотреть профиль Найти все сообщения от TheOwl
 
Регистрация: 20.11.2018
Сообщений: 15

метод функции не работает отовсюду
<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>


а этот нет, вопрос заключается в том, что говорилось, что методы функции доступны отовсюду, но не в последнем примере, почему так.?
объясните пожалуйста.
Ответить с цитированием