src/Base.js
function(json){
  
  // Protect against forgetting the new keyword when calling the constructor
  if(!(this instanceof Base)){
    return new Base(json);
  }
  
  // If the given object is already an instance then just return it. DON'T copy it.
  if(Base.isInstance(json)){
    return json;
  }
  
  this.init(json);
}
function(json){
  
  // Protect against forgetting the new keyword when calling the constructor
  if(!(this instanceof Base)){
    return new Base(json);
  }
  
  // If the given object is already an instance then just return it. DON'T copy it.
  if(Base.isInstance(json)){
    return json;
  }
  
  this.init(json);
}
function ( json ) { // Protect against forgetting the new keyword when calling the constructor if ( ! ( this instanceof Base ) ) { return new Base ( json ) ; } // If the given object is already an instance then just return it. DON'T copy it. if ( Base . isInstance ( json ) ) { return json ; } this . init ( json ) ; }
Base prototype that all other classes in this library extend

@class
@param {Object} [json]
Base prototype that all other classes in this library extend