模仿Firebase客户端库的结构和模式

时间:2015-10-25 11:55:02

标签: javascript firebase static-libraries javascript-objects

我正在考虑制作自己的JavaScript客户端库,我喜欢Firebase格式化请求的方式。我试图了解最新情况。通过查看网络指南here,我找到了以下代码:

var ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog");

var usersRef = ref.child("users");

usersRef.set({

    alanisawesome: {
      date_of_birth: "June 23, 1912",
      full_name: "Alan Turing"
    },

    gracehop: {
      date_of_birth: "December 9, 1906",
      full_name: "Grace Hopper"
    }

});

我可以看到ref等于名为Firebase的函数,usersRef等于ref.child

我想象这样的事情:

 Firebase = function(url) {
    this.child = function(path) {

  console.log(url);
  console.log(path);

};
};

在这里,我可以看到usersRef.set正在被调用,但我无法弄清楚这将会如何或在何处发生? set是函数还是对象?我注意到firebase有set()update()push()transaction(),让我觉得这些都是函数。

"TypeError: Cannot read property 'set' of undefined

也许我完全走错了路,我只是不熟悉这种模式。

1 个答案:

答案 0 :(得分:1)

如果您查看Firebase API,则会看到child()向子位置返回新的Firebase引用。所以像这样:

var Firebase = function(url) {

   console.log(url);

   this.child = function(path) {
      return new Firebase(url+'/'+path);
   };

   this.set = function(object) {
      console.log(object);
   };

};

我已经更新了你jsbin:https://jsbin.com/nucume/2/edit?js,console