Хотелось бы, чтобы я мог подумать о лучшем вопросе для моей ситуации.Функция Javascript, связывающая возможную утечку памяти?
Позвольте мне привести контекст в коде.
У меня есть эта общая функция, предназначенная для связывания с различными вариантами (всего около 3 или 4 случая).
GeneralFunction = function(helper, paramA, paramB) {
if (paramA == "hello") {
return helper(paramA);
}
return paramB;
}
Тогда я эту функцию, чтобы вернуть определенную вариацию общей функции.
function getFlavorX() {
return GeneralFunction.bind(undefined, helperX);
}
Меня беспокоит то, что getFlavorX()
можно назвать много-много раз (тысячи), и в соответствии с documentation of bind, кажется, каждый вызов bind
создает новую функцию. Даже для того же самого helperX
?
Итак, я думаю, что я являюсь своего рода утечкой объектов функции?
Сделайте свой код более умным, чтобы НЕ создать новую функцию, которая привязывается к helperX, если у вас уже есть функция, которая привязывается к helperX: p –
Да, 'bind' действительно создает новые функциональные объекты, но являются ли они утечками или немедленно мусор -collected зависит от остальной части вашего кода. У вас есть какие-либо проблемы с производительностью? – Bergi
@JaromandaX Спасибо! Как только я подумал об этой проблеме с утечкой памяти, я изменил свой код, чтобы сделать именно это. Наверное, мне интересно, является ли это законной проблемой или нет ... Что делать, если Javascript может просто автоматически мусор собирать такие вещи? –