Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.11.2017, 22:00
Интересующийся
Отправить личное сообщение для ArtyomZaitsev Посмотреть профиль Найти все сообщения от ArtyomZaitsev
 
Регистрация: 29.11.2017
Сообщений: 11

Проблема с замыканиями
Почему когда пытаюсь выполнить данный код у меня пишет, что buffer.clear is not a function? Это ведь функция Собственно и выдает ошибку в 21 строке.
function makeBuffer() {
        var str = '';
        return function buffer(arg) {
            if (arguments.length == 0) {
                return str;
            }
            else {
                str += arguments[0]
            };
        };
        buffer.clear = function() {
            str = "";
        };
            return buffer;
    };
    var buffer = makeBuffer();
    buffer(0);
    buffer(1);
    buffer(0);
    alert( buffer() );
    buffer.clear();
    alert( buffer() );
Ответить с цитированием
  #2 (permalink)  
Старый 30.11.2017, 22:27
Интересующийся
Отправить личное сообщение для ArtyomZaitsev Посмотреть профиль Найти все сообщения от ArtyomZaitsev
 
Регистрация: 29.11.2017
Сообщений: 11

Решилось, return стоял в начале
Ответить с цитированием
  #3 (permalink)  
Старый 30.11.2017, 22:37
Интересующийся
Отправить личное сообщение для ArtyomZaitsev Посмотреть профиль Найти все сообщения от ArtyomZaitsev
 
Регистрация: 29.11.2017
Сообщений: 11

Но кто-то может объяснить почему такое обращение к функции? Точнее почему мы называем функцию buffer.clear() внутри другой функции таким образом? или buffer.clear указывает на то, что она по сути находится внутри функции buffer(3 строка)? То есть это уже двойное вложение? если можно так сказать?
В 21 строке мы обращаемся к переменной в которую записана общая функция или непосредственно к самой функции(строка 11). Если мы через переменную обращаемся ко внутренней функции, то не должно ли быть что-то в роде buffer.buffer.clear?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с радио кнопками px379 Общие вопросы Javascript 8 29.07.2013 09:30
Проблема с замыканиями Caminante Общие вопросы Javascript 2 11.07.2012 13:31
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с дизайном после отправки xmlhttprequest, Проблема с дизайном после отправки cyberx AJAX и COMET 3 01.05.2010 17:07
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19