JavaScript Reflect : Object
Reflect Methods
      Essentially the same as new constructor(...parameters). newTarget allows you to change
      what the new.target value is inside the constructor.
    
Example:
RunResults:
      The same as Object.defineProperty() except returns false on
      failure instead of throwing an exception.
    
Example:
RunResults:
      The same as delete object[propertyName]. Returns true if the value was deleted (ie, the
      property was configurable).
    
Example:
RunResults:
      The same as target[propertyName]. If propertyName is a get function, target
      is used as its this if getterThis is not specified.
    
Example:
RunResults:
      The same as Object.getOwnPropertyDescriptor() except throws an
      exception if obj is not an Object.
    
Example:
RunResults:
      The same as Object.getPrototypeOf() except throws an exception if
      obj is not an Object.
    
Example:
RunResults:
      Returns true if obj has a property named propertyName. The in
      operator provides the same result.
    
Example:
RunResults:
      The same as Object.isExtensible() except throws an exception if
      obj is not an Object.
    
Example:
RunResults:
      The same as Object.getOwnPropertyNames() except throws an exception if
      obj is not an Object.
    
Example:
RunResults:
      The same as Object.preventExtensions() except returns false
      on failure and throws an exception if obj is not an Object.