whole_func_string: 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;
    }
  }
func_code_string: 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;
    }
  }
func_documentation_string: 移除事件监听
  @param  {Object}  target 发生事件的对象
  @param {String} type 事件类型
  @param {Function} handler 监听函数
  @return {undefined}