docs: function Overload() {
  		if (arguments.length == 0) {
  			throw new ERR.Arguments('1+', 0);
  		}
  		var args = Array.from(arguments);
  
  		var method = args.pop();
  		if (typeof method == 'function') {
  			this.method = method;
  		}
  		else {
  			throw new ERR.Generic('overloading implementation function missed');
  		}
  
  		// 支持可变长度参数后，用于代表值组长度的数字，也可以用 Param 实例来表征。
  		// 在此我们仍保留 argLength，是出于提高性能的考虑。
  		if (typeof args[0] == 'number' && args.length == 1) {
  			// if (args.length > 1) {
  			// 	throw new ERR.Arguments(2, args.length + 1);
  			// }
  			this.argLength = args[0];
  		}
  		else if (args[0] instanceof ParamList) {
  			if (args.length > 1) {
  				throw new ERR.Arguments(2, args.length + 1);
  			}
  			this.params = args[0];
  		}
  		else {
  			this.params = ParamList.parse.apply(null, args);
  		}
  	}