javascript - 如何将多个 javascript 类中的函数组合到一个对象中

标签 javascript ecmascript-6 ecmascript-next

我有一个快速的 javascript 问题。

假设我有 RootFile.js

import UserApi from './UserApi'
export default class RootFile {

  get userApi() {
    return UserApi;
  }
};

然后我得到了 UserApi.js

import Auth from './auth';
import Profile from './profile';

const merged = {
  ...new Auth, 
  ...new Profile 
}

export default merged;

然后我得到了单独的功能文件,如auth.jsprofile.js

auth.js

export default class Auth{
  authLog(){
    console.log("DONE");
    //Gotta find a way to run this.
  }
}

profile.js

export default class Profile{
  profileLog(){
    console.log("DONE");
    //Gotta find a way to run this.
  }
}

现在我希望能够调用:

import RootFile from './RootFile'

RootFile.userApi.profileLog();
//and
RootFile.userApi.authLog();

我无法让它工作,RootFile.userApiobject 的类型,但是 authLogundefined。 我做错了什么?

最佳答案

我最终做了以下事情:

我的 RootFile.js 现在看起来像这样:

import UserApi from './UserApi'
export default class RootFile {

    get userApi(){
        return UserApi;
    }
};

我摆脱了 get 因为@Tim 说他们没有那么高效。

然后我的 UserApi.js 现在看起来像这样:

import * as Auth from './auth';
import * as Profile from './profile';

const merged = {
  ...Auth, 
  ...Profile 
}

export default merged;

不再有新的

然后我得到了单独的功能文件,如auth.jsprofile.js

auth.js

export function authLog(){
    console.log("auth test ");
},
export default auth;

profile.js

export function profileLog(){
    console.log("profile test ");
} 
export default profile;

所以没有更多的类(class),正如@Bergi 所建议的那样。

现在我可以打电话了:

import RootFile from './RootFile'

RootFile.userApi.profileLog();
//and
RootFile.userApi.authLog();

谢谢大家的回答,但毕竟我会这样做,效果很好。

关于javascript - 如何将多个 javascript 类中的函数组合到一个对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36480648/

相关文章:

javascript - jquery 选择器元素 id 中的小数位

javascript - 如何从 Addon SDK 将进度监听器添加到选项卡对象

这个的javascript生成器值

javascript - Jest 未能监视对象

javascript - 我可以从导入的对象定义 ES6 静态方法吗?

javascript - 类方法可以在 ES 6 或 7 中声明为引用吗?

javascript - 意外字符 '#'

javascript - 根据单击的元素更改变量

javascript - 按键时水平滚动整页

javascript - 阻止对象共享值