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

时间:2016-03-17 15:39:33

标签: javascript class constructor ecmascript-6

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

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

例如;

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

即。 改变这个:

myAPI.getUserById()

To This:

myAPI.User.getByID()

myAPI.User.getByName()

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

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

    //Code to connect to instance...

  }

  getUserById(userId){
    // function
  }
}

解决

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;
  }
}

1 个答案:

答案 0 :(得分:6)

您可以使用合成:

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();

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