最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

class - JavaScript ES6: Grouping methods in es6 classes? - Stack Overflow

programmeradmin1浏览0评论

A few of us are trying to create a JavaScript library to quickly run JSON queries on a RESTful API.

What I'd like to do is group a set of methods relative to their purpose.

For example;

Through the API I am able to get user attributes. Instead of having all of these methods under the main object, I'd like to group them within the API class object.

i.e. Transform this:

myAPI.getUserById()

To This:

myAPI.User.getByID()

myAPI.User.getByName()

We'll use the code below as a simple example. How might I have my User methods nested within a User Object within myAPI Class??

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

    //Code to connect to instance...

  }

  getUserById(userId){
    // function
  }
}

Solved

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

A few of us are trying to create a JavaScript library to quickly run JSON queries on a RESTful API.

What I'd like to do is group a set of methods relative to their purpose.

For example;

Through the API I am able to get user attributes. Instead of having all of these methods under the main object, I'd like to group them within the API class object.

i.e. Transform this:

myAPI.getUserById()

To This:

myAPI.User.getByID()

myAPI.User.getByName()

We'll use the code below as a simple example. How might I have my User methods nested within a User Object within myAPI Class??

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

    //Code to connect to instance...

  }

  getUserById(userId){
    // function
  }
}

Solved

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;
  }
}
Share Improve this question edited Apr 19, 2016 at 19:55 elias91 asked Mar 17, 2016 at 15:39 elias91elias91 836 bronze badges 1
  • Possible duplicate of Organize prototype javascript while preserving object reference and inheritance - no, there's no good way to do this using only one class. – Bergi Commented Mar 17, 2016 at 16:43
Add a ment  | 

1 Answer 1

Reset to default 11

You could use position:

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

This way, you can separate all kind of groups into classes. You can even discriminate different implementations of API's based on the user's requirements.

发布评论

评论列表(0)

  1. 暂无评论