这还是其他语言里面的概念,JS 里面没有,所以只能自己处理传进来的参数。
比如 superagent 的主入口:
function request(method, url) {
// callback
if ('function' == typeof url) {
return new Request('GET', method).end(url);
}
// url first
if (1 == arguments.length) {
return new Request('GET', method);
}
return new Request(method, url);
}
这里要自己去处理 method 可能传入的是 url,url 可能传入的是 callback 这样的情况。当我要代理这个函数的时候,比如说,给 url 统一加 prefix,我得完全 copy 这个函数!————至少是处理重载的这部分代码。
function uest(method, url) {
var r;
// callback
if ('function' == typeof url) {
r = new request.Request('GET', p(method)).end(url);
}
// url first
else if (1 == arguments.length) {
r = new request.Request('GET', p(method));
}
else r = new Request(method, p(url));
return augment(r);
}
哎~
比如 superagent 的主入口:
function request(method, url) {
// callback
if ('function' == typeof url) {
return new Request('GET', method).end(url);
}
// url first
if (1 == arguments.length) {
return new Request('GET', method);
}
return new Request(method, url);
}
这里要自己去处理 method 可能传入的是 url,url 可能传入的是 callback 这样的情况。当我要代理这个函数的时候,比如说,给 url 统一加 prefix,我得完全 copy 这个函数!————至少是处理重载的这部分代码。
function uest(method, url) {
var r;
// callback
if ('function' == typeof url) {
r = new request.Request('GET', p(method)).end(url);
}
// url first
else if (1 == arguments.length) {
r = new request.Request('GET', p(method));
}
else r = new Request(method, p(url));
return augment(r);
}
哎~