code: function() {
          var id = UID();
          entities[id] = null;
          entities[id] = Crafty(id);
  
          if (arguments.length > 0) {
              entities[id].addComponent.apply(entities[id], arguments);
          }
          entities[id].setName("Entity #" + id); //set default entity human readable name
          entities[id].addComponent("obj"); //every entity automatically assumes obj
  
          Crafty.trigger("NewEntity", {
              id: id
          });
  
          return entities[id];
      }
docs: @
  #Crafty.e
  @category Core
  @kind Method
  
  @trigger NewEntity - When the entity is created and all components are added - { id:Number }
  @sign public Entity Crafty.e(String componentList)
  @param componentList - List of components to assign to new entity
  @sign public Entity Crafty.e(String component1[, .., String componentN])
  @param component# - Component to add
  
  Creates an entity. Any arguments will be applied in the same
  way `.addComponent()` is applied as a quick way to add components.
  
  Any component added will augment the functionality of
  the created entity by assigning the properties and methods from the component to the entity.
  
  @example
  ~~~
  var myEntity = Crafty.e("2D, DOM, Color");
  ~~~
  
  @see Crafty.c