Suppose we have a pool of objects (aka an array). Then we Constructor.apply(obj, arguments).
var obj = objectPool[nextAvailableIndex];
obj.index = nextAvailableIndex;
nextAvailableIndex += 1;
Constructor.apply(obj, arguments);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
What does this do to the existing Obj? Is the memory reused? Does this help avoid GC? Isn't it essentially the same as new or is it similar but different?