JavaScript ES6:在es6类中分组方法?

eli*_*s91 5 javascript constructor class ecmascript-6

我们中的一些人正在尝试创建一个JavaScript库,以便在RESTful API上快速运行JSON查询.

我想做的是将一组与其目的相关的方法分组.

例如;

通过API,我可以获得用户属性.我不想在主要对象下使用所有这些方法,而是将它们分组到API类对象中.

即改变这个:

myAPI.getUserById()
Run Code Online (Sandbox Code Playgroud)

对此:

myAPI.User.getByID()

myAPI.User.getByName()
Run Code Online (Sandbox Code Playgroud)

我们将使用下面的代码作为一个简单的例子.我如何将我的User方法嵌套在myAPI类中的用户对象中?

class myAPI {
  constructor(url) {
    this.url = url;

    //Code to connect to instance...

  }

  getUserById(userId){
    // function
  }
}
Run Code Online (Sandbox Code Playgroud)

解决了

class myAPI {
  constructor(url) {
    this.url = url;
    this.UserAPI = new UserClass(this);

    //Code to connect to instance...

  }

  getUserById(userId){
    // function
  }
}

class UserClass {
  constructor(parent){
    this.myAPI = parent;
  }
}
Run Code Online (Sandbox Code Playgroud)

Tim*_*Tim 7

你可以使用组合:

class UserAPI {

    constructor(url) {
        this.url = url;
    }    

    getById() {
    }
}

class API {

    constructor(url) {

        this.url = url;
        this.User = new UserAPI(url);
    }
}

var myAPI = new API();

myAPI.User.getById();
Run Code Online (Sandbox Code Playgroud)

这样,您可以将所有类别的组分成类.您甚至可以根据用户的要求区分API的不同实现.