we know here that `rootObject` is an array (because `isArray` is true). if it's also a function, then we know it's an `observableArray`, so we want to preserve that reference, so if the viewmodel is updated, so is the original observable array.