先前设置的回调以获取当前用户输入

时间:2019-02-19 10:18:36

标签: javascript callback user-input

我目前有一个简单的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])“”“),并将新输入(稍后)传递给新选择的函数。但这似乎不适用于我尝试过的任何方法(以上是我的最佳尝试)。而不是传递函数,而是传递函数的 * text * (直译为“ function(){ret ...”)。我可以调用绑定到恰当地命名为““”“ bound_callback”“”“的匿名函数,但是这将在设置事件侦听器时立即捕获输入,而不是在触发时立即捕获输入,例如,制作一个简单的“ echo”程序(总是传递圆形的“”“ viewer.listen(echo)”“”,当然),总是回显 * last * 输入,而不是当前输入。但是,我需要做些什么使回调在触发时拉出用户输入 * 并将其作为参数传递给先前选择的回调函数?

0 个答案:

没有答案