前言:
es6新增的class方法,现在想把他们多个合并到一起,最终生成一个新方法出来。
思路:
我们新建3个文件,分别为index.js, login.js ,main.js
login.js 和 main.js是两个 class函数,将他们合并到index.js中
实现方法:
1、对象合并
let login = {}
let main= {}
//合并js
const apiObj = {
...login,
...main
}
2、class方法继承
class Request {
constructor(){
}
}
//创建一个新的class方法,然后继承 request里面的对象
class indexModel extends Request {
}
3、class方法动态增加js方法
class indexModel{}
let apiObj = {
aaa(){},
bbb(){}
}
Object.assign(indexModel.prototype, apiObj)
具体源码:
request.js
export class Request {
constructor(){
}
_request()
}
login.js
const login = {
// 登录-获取用户session_key
loginFun(data) {
return this.request({ url: '/wx/wxOpenid', data: data, method: 'POST' })
},
}
export default login
main.js
const main = {
// 获取当前用户签到信息
getSignData(data) {
return this.request({ url: '/employee', data: data, method: 'GET' })
}
}
export default main
index.js
//引入相关js文件
import { Request } from '../utils/request.js'
import login from './login'
import main from './main'
//合并js
const apiObj = {
...login,
...main
}
//创建一个新的class方法,然后继承 request里面的对象
class indexModel extends Request {
}
//把合并好的js,给我们的新class 方法 indexModel 赋值
Object.assign(indexModel.prototype, apiObj)
//发送出去
const http = new indexModel();
export default http