function o(prototype, ...args) {
    let arg = null,
      key = null
    const obj = Object.create(prototype)

    for (arg of args) {
      for (key in arg) {
        if (!obj[key]) {
          if (arg.hasOwnProperty(key)) {
            obj[key] = arg[key]
          }
        }
      }
    }
    if (obj.constructor) {
      obj.constructor.call(obj)
    }
    return obj
  }
/*
   * Method for creating objects from prototype objects.
   * @param {object} prototype
   * @return {object} constructed object
   */
Method for creating objects from prototype objects.
Method for creating objects from prototype objects .
function o(prototype, ...args) {
    let arg = null,
      key = null
    const obj = Object.create(prototype)
    for (arg of args) {
      for (key in arg) {
        if (!obj[key]) {
          if (arg.hasOwnProperty(key)) {
            obj[key] = arg[key]
          }
        }
      }
    }
    if (obj.constructor) {
      obj.constructor.call(obj)
    }
    return obj
  }
function o ( prototype , ... args ) { let arg = null , key = null const obj = Object . create ( prototype ) for ( arg of args ) { for ( key in arg ) { if ( ! obj [ key ] ) { if ( arg . hasOwnProperty ( key ) ) { obj [ key ] = arg [ key ] } } } } if ( obj . constructor ) { obj . constructor . call ( obj ) } return obj }
Method for creating objects from prototype objects.
Method for creating objects from prototype objects .