【问题标题】:What are the benefit of assigning function results to variables vs calling inline?将函数结果分配给变量与调用内联有什么好处?
【发布时间】:2021-12-03 19:56:58
【问题描述】:

我正在学习 Firebase。在许多代码示例中,我看到如下内容:

const auth = getAuth();

await signInWithPopup(auth, provider);

在 firebase web codelab 中,他们直接调用 getAuth

await signInWithPopup(getAuth(), provider);

getFirestore 相同。
那么哪一种是正确的做法,如果它们都相同,那么更好的做法是什么?

编辑:当我需要多次使用auth 对象时,我会通过调用getAuth 一次并将其分配给一个变量来获得任何性能优势吗?

【问题讨论】:

  • 有几个正确答案,但通常,这两个代码 sn-ps 的行为“相同”。然而,需要更多的上下文;从技术上讲,这个const auth = getAuth(); 将占用内存,并且根据它的放置位置,它可以保留在内存中。而这个await signInWithPopup(getAuth(), provider); 可以使用一次并丢弃。同样,取决于代码中的位置。如果您要在多个地方重复使用 var,这个 const auth = getAuth(); 很方便,因为它将保持一个值并且不会再次填充。所以,它们是“相同的”……有点。没有性能差异。

标签: javascript firebase web google-cloud-platform firebase-authentication


【解决方案1】:

如果不需要重用 auth 变量,那么直接调用即可。

在这种情况下没有任何显着差异。

【讨论】:

  • 所以如果我需要重用 auth 变量,最好将 getAuth 返回值分配给 auth?
  • 是的.. 这样可以避免多次调用函数:)
【解决方案2】:

这两个代码示例在功能上是相同的。第一个例子更加冗长。

【讨论】:

  • 调用一次应该是一样的。当我通过调用getAuth 一次并将其分配给auth 变量多次需要auth 对象时,是否可以获得任何性能优势?
【解决方案3】:

这两种方法没有区别。如果你想使用getAuth()返回的结果,只使用一次,这样使用是有意义的:

await signInWithPopup(getAuth(), provider);

否则,将其保存到auth 变量中,并根据需要多次使用它。在性能方面,完全没有区别。

【讨论】:

    猜你喜欢
    • 2013-11-12
    • 2015-04-12
    • 2022-07-02
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多