【问题标题】:Should I declare a variable inside a function or outside?我应该在函数内部还是外部声明变量?
【发布时间】:2019-09-23 08:30:18
【问题描述】:

如果你觉得这个问题很愚蠢,请不要误会我的意思。 如果我有两个变量,我应该在函数内部还是外部声明它们?

喜欢这个

var Num = document.querySelector("#Fnumber");
var Num2 = document.querySelector("#Secnumber");
function Multiply(){
alert(Num.value + Num2.value)
}

//or declaring variable inside a function like this ?

function Multiply(){
var Num = document.querySelector("#Fnumber").value;
var Num2 = document.querySelector("#Secnumber").value;
alert(Num + Num2)
}

我是否在两个示例中都粘贴了正确的值属性?

【问题讨论】:

  • 取决于您如何设置其他所有内容。封装有利于重用。问题是每次调用它(如果在函数中)都需要重新确定 NUM 和 NUM2 是什么,这需要 N 时间。但通常我将输入定义为类的私有属性。

标签: javascript function var


【解决方案1】:

我认为在外部声明它们会更好,因为当你在内部声明它们时,每次运行函数 Multiply() 时都会选择输入。在两个输入的情况下,它不会影响性能,但在许多元素的情况下,它肯定会影响性能。

但是当你在外面声明元素时,你只需要访问它们的value

这也取决于元素NumNum2 的重要性。如果整个应用程序大量使用它们并且它们也用于其他函数,那么应该在外部声明变量

【讨论】:

    【解决方案2】:

    如果你只在一个函数中使用这个变量值,这很好。

    function Multiply(){
    var Num = document.querySelector("#Fnumber").value;
    var Num2 = document.querySelector("#Secnumber").value;
    alert(Num + Num2)
    }
    

    【讨论】:

      【解决方案3】:

      两者都是有效的,您只需要注意变量将在不同的范围内。在第一个示例中,变量将在函数 Multiply 之外可用,它们可以被其他函数修改。在第二个示例中,它们仅在乘法函数中可用。在选择在哪里声明变量时,您应该问自己需要在哪里使用它们,是否污染了全局范围,以及声明它们时对性能的影响有多大。

      【讨论】:

      • 所有明智的建议恕我直言。我只想补充一点,您还必须考虑每个变量的值是否需要在函数的生命周期之外持续存在,或者是否应该在每次函数运行时重置它。如果它是在函数内部声明的,那么它每次都会重置
      猜你喜欢
      • 1970-01-01
      • 2014-03-24
      • 2011-04-10
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      相关资源
      最近更新 更多