code: function() {
          var components = arguments;
          var i = 0;
          var collisionData;
  
          if (components.length === 0) {
              for (collisionData in this._collisionData) {
                  this.unbind("UpdateFrame", collisionData.handler);
              }
  
              this._collisionData = {};
          }
  
          if (components.length === 1) {
              components = components[0].split(/\s*,\s*/);
          }
  
          for (; i < components.length; ++i) {
              var component = components[i];
              collisionData = this._collisionData[component];
  
              if (collisionData === undefined) {
                  continue;
              }
  
              this.unbind("UpdateFrame", collisionData.handler);
              delete this._collisionData[component];
          }
  
          return this;
      }
docs: @
  #.ignoreHits
  @comp Collision
  @kind Method
  
  @sign public this .ignoreHits()
  
  @sign public this .ignoreHits(String componentList)
  @param componentList - A comma separated list of components to stop checking
  for collisions with.
  
  @sign public this .ignoreHits(String component1[, .., String componentN])
  @param component# - A component to stop checking for collisions with.
  
  Stops checking for collisions with all, or certain, components. If called
  without arguments, this method will cause all collision checks on the
  entity to cease. To disable checks for collisions with specific
  components, specify the components as a comma separated string or as
  a set of arguments.
  
  Calling this method with component names for which there are no collision
  checks has no effect.
  
  @example
  ~~~
  Crafty.e("2D, Collision")
  .checkHits('Solid')
  ...
  .ignoreHits('Solid'); // stop checking for collisions with entities that have the Solid component
  ~~~