Краткий ответ на вопрос: ДА.
Пусть аргументы функции являются ссылками на объекты или примитивными переменными, они сохраняются в стеке только до тех пор, пока функция не будет выполнена.
Одним из основных эффектов вышеуказанного механизма является то, что , когда аргументы являются ссылками на объекты, из стека высовывается только ссылка . Реальный объект, на который вы ссылаетесь, все еще живет в памяти, пока процесс сбора мусора JS не определит, что на память больше не ссылается какая-либо переменная.
Это исключительно автоматически и удастся очистить память для новых выделений независимо от того, сколько объектов вы создали, и отказаться от них путем удаления ссылок.
function testObj(myObj) {
return typeof myObj === 'object'
}
var o = {}
testObj(o) //The object o will still live after this call, because variable o points to it even after the function exists.
test({}) // Don't worry about this improvised object. There won't be any references to it after the function call
Здесь - статья, с которой вы можете более подробно ознакомиться.