javascript функция toString'd с встроенными динамическими значениями? - PullRequest
0 голосов
/ 31 августа 2018

Я вызываю toString() для функции, чтобы я мог отправить ее по проводам в систему, которая будет применять ее к объекту. Упрощенный пример ниже. Здесь я передаю функцию в виде строки удаленному сервису, который проверяет, является ли удаленный объект this, обладающий свойством timestamp, старше, чем cutoff, который в настоящее время всегда один дом назад ...

var functionToSend = function() { 

    let cutoff = new Date();
    cutoff.setHours(autoApproveCutoff.getHours() - 1);

    const isMatch = this.timestamp <= cutoff

    return isMatch
};

foo.sendFunction(functionToSend.toString())

Я бы хотел иметь возможность отправлять cutoff час (при сборке или времени выполнения), сохраняя при этом functionToSend в качестве фактической функции, чтобы я мог выполнять модульное тестирование и наслаждаться автозаполнением, колоризацией и т.д. Плюс, если я получу 100 проверок для 100 различных значений отсечки, мне не нужно будет хранить их все отдельно.

    cutoff.setHours(autoApproveCutoff.getHours() - DYNAMIC-VALUE);

Имейте в виду, что после того, как функция приведена в соответствие, вы не можете ссылаться на что-либо внешнее по отношению к этой функции (за исключением this, который является удаленным объектом).

Может быть, это невозможно. Может быть, больше усилий, чем оно того стоит. Но было бы интересно, если у кого-нибудь есть идеи, если не считать кода.

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