This only provides a summary. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object for detailed usage.
"Reflex" global object methods are more preferred to use instead of the Object methods described here.
'Object' can be used as constructor (new Object()) but has no advantage over using object literal.
value: the value
writable: true/false
get & set: function as getter/setter, or undefined
configurable: true - type of this property descriptor may be changed and property may be deleted
enumerable: true/false, if show up during enumeration of the properties
[NOTE: should not confuse 'prototype' property with prototype. 'prototype' property is just a property, named 'prototype'. Prototype is actually an internal link. Use Object.getPrototypeOf & Object.setPrototypeOf to retrieve & set. Can also obtain with __proto__ - an accessor.
Object.prototype: the prototype of all objects
Object.prototype.constructor : the function that creates an object's prototype (overridden, by object instance's prototype's constructor property, which points to the class function)
C.prototype.constructor === C // true
Object.getPrototypeOf(ci).constructor === C // true
Object.assign(target, source1, source2...) : copy properties of enumerable own properties from source(s) to target; note: target.assign(source1, source2) does not work
Object.create( prototype) : create an object with given prototype
Object.defineProperty() Object.defineProperties(): defines property of object with given name and property descriptor (writable etc.)
Object.fromEntries(): reverse of Object.entries() (note: not in node 8.10...)
Object.getOwnPropertyDescriptor(object, 'propertyName'): return property descriptor
Object.getOwnPropertyDescriptors(anObject): returns an object with descriptor of all properties, e.g. returnedObj.property1.writable...
Object.setPrototypeOf(); Object.getPrototypeOf():
Object.preventExtensions()
Object.isExtensible()
Object.freeze(); Object.isFrozen()
Object.seal(); Object.isSealed()
Seal prevents add/delete properties & configure existing properties, freeze further prevents modifying value of existing properties
Object.entries(): returns an array of [key, value] of all own enumerable string properties; usage "for (let [key, value] of Object.entries(object1)) {"
Object.keys(): return array of names of own enumerable string properties
Object.values(): an array containing values of own enumerable string properties
Object.getOwnPropertyNames(): return names of own enumerable & non-enumerable properties
Object.getOwnPropertySymbols(): return array of all symbol properties
Object.is() : Compare two values. Equates all NaN values