【问题标题】:JavaScript ES6: Grouping methods in es6 classes?JavaScript ES6:es6 类中的分组方法?
【发布时间】:2016-07-04 01:52:48
【问题描述】:

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

我想做的是根据其目的对一组方法进行分组。

例如;

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

即 转换这个:

myAPI.getUserById()

到这里:

myAPI.User.getByID()

myAPI.User.getByName()

我们将使用下面的代码作为一个简单的示例。如何将我的用户方法嵌套在 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;
  }
}

【问题讨论】:

标签: javascript class constructor ecmascript-6


【解决方案1】:

你可以使用合成:

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 实现。

【讨论】:

  • 这是许多应用程序使用的服务/模型模式的基础。
  • 谢谢蒂姆。从来没有这样想过。正是我想要的。谢谢!
  • 我在 JSFiddle 中添加了一个示例 jsfiddle.net/MisterFantastic/0u50f7jy
猜你喜欢
  • 2018-03-29
  • 2016-07-11
  • 1970-01-01
  • 2018-02-24
  • 2017-04-23
  • 2018-08-11
  • 2021-12-28
  • 1970-01-01
相关资源
最近更新 更多