Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 模拟Firebase客户端库';结构和模式_Javascript_Firebase_Static Libraries_Javascript Objects - Fatal编程技术网

Javascript 模拟Firebase客户端库';结构和模式

Javascript 模拟Firebase客户端库';结构和模式,javascript,firebase,static-libraries,javascript-objects,Javascript,Firebase,Static Libraries,Javascript Objects,我正在考虑制作自己的JavaScript客户端库,我喜欢Firebase格式化请求的方式。我想知道发生了什么。通过查看web指南,我发现以下代码: var ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog"); var usersRef = ref.child("users"); usersRef.set({ alanisawesome: { date_of

我正在考虑制作自己的JavaScript客户端库,我喜欢Firebase格式化请求的方式。我想知道发生了什么。通过查看web指南,我发现以下代码:

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

};
};
var Firebase = function(url) {

   console.log(url);

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

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

};
在这里,我可以看到正在调用
usersRef.set
,但我不知道这将如何或在哪里进行?
set
是函数还是对象?我注意到firebase有
set()
update()
push()
transaction()
,让我觉得这些都是函数

"TypeError: Cannot read property 'set' of undefined

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

如果你检查Firebase API,你会看到
child()
返回一个新的Firebase引用到子位置。比如说:

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

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

};
};
var Firebase = function(url) {

   console.log(url);

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

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

};

我已经更新了你的jsbin:

@Drenmi谢谢你的编辑,它看起来和读起来都好多了。
child()
只需要返回一个带有
set
/
update
/…方法的对象,就像
new Firebase
返回一个带有
child
方法的对象一样。@Bergi感谢你的回复,我就是想不通你的建议,你能帮我进一步扩大我目前的最佳猜测吗