Я вызываю 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
, который является удаленным объектом).
Может быть, это невозможно. Может быть, больше усилий, чем оно того стоит. Но было бы интересно, если у кого-нибудь есть идеи, если не считать кода.