【问题标题】:How to create a 'chaining' JavaScript API with intermediate 'fluent' verbage?如何创建具有中间“流利”措辞的“链接”JavaScript API?
【发布时间】:2015-08-01 05:14:43
【问题描述】:

我正在创建 js sdk,我正在寻找创建用户(API)/用户调用函数之类的地方;

var user = new user();

user.message.to("username").get.friendlist(function(data){
    //process data received from callback.
});

现在,我知道可以进行方法链接,并且可以制作类似的东西

function User(Name) {
    this.uname = Name;
}

User.prototype = {
    constructor: User,

    MessageTo: function (username) {
        this.uname = username;
        return this;
    },

    getFriendList: function (callback) {
        callback("My list");
    }
}

在创建 User() 对象后,我可以如下使用它;

user.messageTo("username").getFriendList(function(data){
});

但我不知道如何像我正在寻找的那样获得方法调用;

user.message.to("username").get.friendlist(function(data){
});

Evan 我不确定这是否可能。任何有相同问题的帮助或指针表示赞赏。

【问题讨论】:

标签: javascript oop methods chaining


【解决方案1】:

正如其他成员所评论的那样,还有其他选择可以做同样的事情,但我必须按照我需要的方式来做这件事。

此解决方案符合我的要求,因此在其他情况下可能不是最适合的。

sdk.js

var User = function(){
UserName = null;
this.message = {

to : function(uname){

  UserName = uname   
  alert('called to '+uname);

  this.get = {
    friendlist : function(callback){
      console.log('called friendlist');
        callback('Hello friendlist :: '+ UserName);
    }
  }
  return this;
  }
  };
}

并像使用它;

  var user1 = new User();

  user1.message.to('H.Mahida').get.friendlist(function(data){
      alert('call back says '+ data);
  });

这里是jsfiddle的链接

希望它对某些人有用或指导同一方向......!!!

【讨论】:

    猜你喜欢
    • 2015-07-30
    • 2010-12-10
    • 1970-01-01
    • 2012-09-14
    • 2018-06-03
    • 2021-07-21
    • 2020-02-17
    • 2019-11-02
    • 1970-01-01
    相关资源
    最近更新 更多