Performs a deep comparison of two objects and returns true if they're
equal.
This method supports comparing arrays, array buffers, booleans, date objects, error objects, maps, numbers, Object objects, regexes, sets, strings, symbols, and typed arrays. Object objects are compared by their own, not inherited, enumerable properties. Functions and DOM nodes are compared by strict equality, i.e. ===.
The object to compare with b.
The object to compare with a.
true if the two objects are equal. Otherwise false.
Returns true if this is a plain object, which is defined by a type created
by the Object constructor. Returns false otherwise.
Returns an array of key-value pairs for each enumerable key in obj.
Returns a new object where any enumerable property from
otherare recursively applied toa. Once a property is set, it will not be overridden. This function is useful for constructing configs from a default config.