Javascript 模拟Firebase客户端库';结构和模式
我正在考虑制作自己的JavaScript客户端库,我喜欢Firebase格式化请求的方式。我想知道发生了什么。通过查看web指南,我发现以下代码: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
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感谢你的回复,我就是想不通你的建议,你能帮我进一步扩大我目前的最佳猜测吗