merge(notationsObject, overwrite = true) {
        if (!utils.isObject(notationsObject)) {
            throw new NotationError(ERR.NOTA_OBJ + 'Expected an object.');
        }
        let value;
        utils.each(Object.keys(notationsObject), notation => {
            value = notationsObject[notation];
            this.set(notation, value, overwrite);
        });
        return this;
    }
/**
     *  Just like the `.set()` method but instead of a single notation
     *  string, an object of notations and values can be passed.
     *  Sets the value of each corresponding property at the given
     *  notation. If a property does not exist, it will be created
     *  and nested at the calculated level. If it exists; its value
     *  will be overwritten by default.
     *  @chainable
     *
     *  @param {Object} notationsObject - The notations object to be processed.
     *  This can either be a regular object with non-dotted keys
     *  (which will be merged to the first/root level of the source object);
     *  or a flattened object with notated (dotted) keys.
     *  @param {Boolean} [overwrite=true] - Whether to overwrite a property if
     *  exists.
     *
     *  @returns {Notation} - Returns the current `Notation` instance (self).
     *
     *  @example
     *  const obj = { car: { brand: "Dodge", year: 1970 } };
     *  Notation.create(obj).merge({
     *      "car.brand": "Ford",
     *      "car.model": "Mustang",
     *      "car.year": 1965,
     *      "car.color": "red",
     *      "boat": "none"
     *  });
     *  console.log(obj);
     *  // { car: { brand: "Ford", model: "Mustang", year: 1970, color: "red" }, boat: "none" };
     */
Just like the `.set()` method but instead of a single notation
string, an object of notations and values can be passed.
Sets the value of each corresponding property at the given
notation. If a property does not exist, it will be created
and nested at the calculated level. If it exists; its value
will be overwritten by default.
@chainable

@param {Object} notationsObject - The notations object to be processed.
This can either be a regular object with non-dotted keys
(which will be merged to the first/root level of the source object);
or a flattened object with notated (dotted) keys.
@param {Boolean} [overwrite=true] - Whether to overwrite a property if
exists.

@returns {Notation} - Returns the current `Notation` instance (self).


Just like the ` . set () ` method but instead of a single notation string an object of notations and values can be passed . Sets the value of each corresponding property at the given notation . If a property does not exist it will be created and nested at the calculated level . If it exists ; its value will be overwritten by default . @chainable @param { Object } notationsObject - The notations object to be processed . This can either be a regular object with non - dotted keys ( which will be merged to the first / root level of the source object ) ; or a flattened object with notated ( dotted ) keys . @param { Boolean } [ overwrite = true ] - Whether to overwrite a property if exists . @returns { Notation } - Returns the current ` Notation ` instance ( self ) .
merge(notationsObject, overwrite = true) {
        if (!utils.isObject(notationsObject)) {
            throw new NotationError(ERR.NOTA_OBJ + 'Expected an object.');
        }
        let value;
        utils.each(Object.keys(notationsObject), notation => {
            value = notationsObject[notation];
            this.set(notation, value, overwrite);
        });
        return this;
    }
merge ( notationsObject , overwrite = true ) { if ( ! utils . isObject ( notationsObject ) ) { throw new NotationError ( ERR . NOTA_OBJ + 'Expected an object.' ) ; } let value ; utils . each ( Object . keys ( notationsObject ) , notation => { value = notationsObject [ notation ] ; this . set ( notation , value , overwrite ) ; } ) ; return this ; }
Just like the `.set()` method but instead of a single notation
  string, an object of notations and values can be passed.
Just like the ` . set () ` method but instead of a single notation string an object of notations and values can be passed .