Ранее установленный обратный вызов для получения текущего пользовательского ввода - PullRequest
0 голосов
/ 19 февраля 2019

В настоящее время у меня есть версия простого средства просмотра JS, которая запускает / тестирует основные функции в браузере, но пытается создать более функциональную версию без сохранения состояния.Вот соответствующий код:

"" "

var viewer = {
...
    listen: function (callback) {
        'use strict';

        var bound_callback = callback.bind(null, function () {return document.getElementById('input').value});

        document.getElementById('viewer').removeEventListener('submit', last_callback);
        document.getElementById('viewer').addEventListener('submit', bound_callback, false);
        last_callback = bound_callback;
    }
};
var last_callback;

" ""

По сути, другой метод объекта "" "viewer" "" захватываетввод от пользователя и передает его данной функции, затем функция вызовет "" "listen" "" (в форме "" "viewer.listen([function])" "") и передаст новый ввод (позднее) к вновь выбранной функции.Но, похоже, это не работает с любым подходом, который я пробовал (с моей лучшей попыткой выше).Вместо передачи функции она передает текст * * функции (буквально "function () {ret ...").Я могу вызвать анонимную функцию, связанную с метко названным "" "bound_callback" "", но она будет захватывать входные данные сразу после установки прослушивателя событий, а не при запуске, например, создавая простую программу "эхо" (котораявсегда пропускается круговая "" "viewer.listen(echo)" "", конечно), всегда повторяет * последний * вход, а не текущий.Но что мне нужно сделать, чтобы обратный вызов извлек пользовательский ввод *, когда он вызывает *, и передал его в качестве аргумента ранее выбранной функции обратного вызова?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...