Javascript react native和firebase-firebase函数作为参考
有人能解释一下这段代码的工作原理吗:Javascript react native和firebase-firebase函数作为参考,javascript,firebase,react-native,firebase-realtime-database,Javascript,Firebase,React Native,Firebase Realtime Database,有人能解释一下这段代码的工作原理吗: this.firebaseRef.on('value', (snapshot) => {//...}); 这不是: const foo = this.firebaseRef.on; foo('value', (snapshot) => {//...}); ? 在react native devtools调试器中,它抛出一个错误:无法读取未定义的属性“Y” 这很有趣,因为当我设置断点并检查它时 foo === this.firebaseRef.
this.firebaseRef.on('value', (snapshot) => {//...});
这不是:
const foo = this.firebaseRef.on;
foo('value', (snapshot) => {//...});
?
在react native devtools调试器中,它抛出一个错误:无法读取未定义的属性“Y”
这很有趣,因为当我设置断点并检查它时
foo === this.firebaseRef.on
它给我真实的感觉
typeof foo
是一个函数。我不明白。同样的情况也会发生在once
上,不同之处在于调用on
时,该值将是什么。当函数作为对象的成员调用时,此
绑定到对象。()当函数值作为独立变量调用时,此
绑定到全局对象,或在严格模式下绑定到未定义的
。()
要解决此问题,必须将函数设置为正确的此值
const foo = this.firebaseRef.on.bind(this.firebaseRef);
foo('value', (snapshot) => {
// ...
});
不同之处在于调用on
时该值将是什么。当函数作为对象的成员调用时,此
绑定到对象。()当函数值作为独立变量调用时,此
绑定到全局对象,或在严格模式下绑定到未定义的
。()
要解决此问题,必须将函数设置为正确的此值
const foo = this.firebaseRef.on.bind(this.firebaseRef);
foo('value', (snapshot) => {
// ...
});