【问题标题】:JS - Set variables value in function but use variable outside of it?JS - 在函数中设置变量值但在函数之外使用变量?
【发布时间】:2013-08-09 01:30:37
【问题描述】:

我需要在函数内设置变量值,但在函数外使用它。这可以做到吗?

$(document).ready(function() {
    $(window).scroll(function () {
        var myVar = something;
    });
    console.log(myVar);
});

【问题讨论】:

  • 在您的 .scroll 处理程序之前,添加 var myVar;。在.scroll 处理程序中,不要使用var(这将创建一个新变量)。但是请注意,myVar 将在您 log 时未定义,因为直到滚动处理程序实际运行时才会设置它。

标签: javascript


【解决方案1】:

是的。只需在函数外声明变量即可。

【讨论】:

    【解决方案2】:
    <script>
      var myVar = "foo";
      $(document).ready(function() {
          $(window).scroll(function () {
              myVar = something;
          });
          console.log(myVar);
      });
    </script>
    

    【讨论】:

    • 为什么要将它包含在准备好的文档中就足够了?
    • 他说他想在函数之外使用它。如果他在函数外部不需要它,那么是的,我会在函数内部声明它。
    • 在内部$(window).scroll 函数之外,而不是(必然)在$(document).ready 之外,因为他们实际尝试使用它的地方。
    • 我同意...好的做法是将其声明为尽可能小的范围。但是,我对原始问题的阅读是在 $(window).scroll 函数和 $(document).ready 函数之外使用它。
    【解决方案3】:

    是的,但您需要先在函数之外声明它。

    $(document).ready(function() {
        var myVar;
    
        $(window).scroll(function () {
           myVar = something;
        });
    
        console.log(myVar);
    });
    

    只要知道myVar 只会在滚动事件触发后更新。因此,您的console.log 将记录undefined,因为它在事件运行并设置变量之前运行

    【讨论】:

      猜你喜欢
      • 2017-11-13
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多