我希望我能为自己的情况想出一个更好的问题。
让我在代码中给出上下文。
我有这个一般功能,用于绑定不同的变化(只有大约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
都会创建一个 new 功能。即使是完全相同的helperX
?
所以我猜我有点泄漏函数对象?
答案 0 :(得分:0)
我猜这个问题是有效的,但内存泄漏与否取决于代码的其余部分。因为在我的情况下,绑定的变化非常有限,我手动维护绑定函数对象的列表(我返回一个已经绑定的函数对象,而不是让用户代码在每次调用时调用bind
)。