function removeEventCache(target, type, handler) {
  var isOnce = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;

  var typeCache = getEvtTypeCache(target, type);

  if (handler || isOnce) {
    /* 有指定 handler 则清除对应监听 */
    var handlerId = -1;
    var handlerWrap = void 0;
    typeCache.find(function (item, i) {
      if ((!handler || item[0] === handler) && (!isOnce || item[2])) {
        handlerId = i;
        handlerWrap = item[1];
        return true;
      }
    });
    if (handlerId !== -1) {
      typeCache.splice(handlerId, 1);
    }
    return handlerWrap;
  } else {
    /* 未指定 handler 则清除type对应的所有监听 */
    typeCache.length = 0;
  }
}
function removeEventCache(target, type, handler) {
  var isOnce = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;

  var typeCache = getEvtTypeCache(target, type);

  if (handler || isOnce) {
    
    var handlerId = -1;
    var handlerWrap = void 0;
    typeCache.find(function (item, i) {
      if ((!handler || item[0] === handler) && (!isOnce || item[2])) {
        handlerId = i;
        handlerWrap = item[1];
        return true;
      }
    });
    if (handlerId !== -1) {
      typeCache.splice(handlerId, 1);
    }
    return handlerWrap;
  } else {
    
    typeCache.length = 0;
  }
}
function removeEventCache ( target , type , handler ) { var isOnce = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : false ; var typeCache = getEvtTypeCache ( target , type ) ; if ( handler || isOnce ) { /* 有指定 handler 则清除对应监听 */ var handlerId = - 1 ; var handlerWrap = void 0 ; typeCache . find ( function ( item , i ) { if ( ( ! handler || item [ 0 ] === handler ) && ( ! isOnce || item [ 2 ] ) ) { handlerId = i ; handlerWrap = item [ 1 ] ; return true ; } } ) ; if ( handlerId !== - 1 ) { typeCache . splice ( handlerId , 1 ) ; } return handlerWrap ; } else { /* 未指定 handler 则清除type对应的所有监听 */ typeCache . length = 0 ; } }
移除事件监听
@param  {Object}  target 发生事件的对象
@param {String} type 事件类型
@param {Function} handler 监听函数
@return {undefined}
移除事件监听