let mapping = new Map([
["/getData/dataList", getData.getDataList()],
["/getData/id", getData.getKnowledgeById],
["/getData/search", getData.searchKnowledge]
]);
let ajax = new class {
constructor(mapping) {
this.mapping = mapping;
}
request(option) {
return this.mapping.get(option.url);
}
}(mapping);
option是一个对象,调用方式如下:
ajax.request({
url: '/getData/id',
id: 1
});
代码如上所述,mapping是存的一个url和函数的映射表,现在存在一个问题是,当我调用的是getKnowledgeById函数时,这个函数是需要一个参数的,request里的return只能return回这个函数,现在的问题是:
如何通过我现在传入的option对象中的参数自动判断我是传了id还是input值,分别再应用到getKnowledgeById和searchKnowledge这两个函数中,返回执行结果?
困惑已久,求大神解答!
补充最后用的方法:
return this.mapping.get(option.url).call(getData, option.args);
这一行就OK!谢谢大神解答给我启发!
aluckdog
相关分类