When you use Object(value) as a function (without the new keyword), you are using the Object Constructor as a Type Transformer.
If the value is null or undefined, it creates and returns an empty object.
If the value is an object already, it returns the value.
Otherwise, it returns an object of a type that corresponds to the given value. For example, passing a BigInt primitive returns a BigInt wrapper object