0
說我有這樣的功能:創造條件在JavaScript中倒閉的
function wrap_function(fnInput)
{
if (somecondition)
{
return function() {
// Simplified example, in reality doing more stuff in here
fnInput.apply(this, arguments)
}
}
else
{
return fnInput;
}
}
我假設,如果somecondition
是假的這一功能不會創建一個封閉,因此不會有性能/與閉包相關的內存影響。
這是正確的嗎?
在這種情況下,閉包的「性能/內存影響」絕對最小。如果* somecondition *爲true,則調用* wrap_function *時創建的激活對象將保留在匿名函數的作用域鏈上,但可能會被優化掉,因爲沒有使用它。 * fnInput *可能是傳遞給* wrap_function *的原始(function?)對象的直接引用。在最壞的情況下,在解析匿名函數內部的標識符* fnInput *時,只有一次額外的查找。 – RobG