【问题标题】:How to access a variable value that is defined inside another function JS如何访问在另一个函数 JS 中定义的变量值
【发布时间】:2021-12-24 09:48:54
【问题描述】:

我有一个变量 totalActivatedOffers,它在函数内部定义,在 IF 语句内部。我需要能够通过另一个函数在 IF 语句之外使用这个变量的值,但不能让它工作,它一直返回未定义。

我已经在脚本块的顶部声明了它,如下所示:

var totalActivatedOffers;

但仍然没有快乐。以下是如何为它分配值的示例(为说明而简化):

if ("SSO" in sessionStorage) {
  setTimeout(function(){
    if (firstArrayLength.length == 3) {
      var totalActivatedSparksOffers = 4;
    }
    if (secondArrayLength.length == 3) {
      var totalActivatedRewardsOffers = 7;
    }
    var totalActivatedOffers = totalActivatedSparksOffers + totalActivatedRewardsOffers;
  }, 2500) 
} // closes if SSO is inside session storage

// need to access the value here, outside of the IF statement
console.log('Total activated offers to subtract is ' + totalActivatedOffers);

任何帮助将不胜感激。

解决方案:

通过将其设为如下窗口变量来设法解决此问题:

window.totalActivatedOffers = totalActivatedSparksOffers + totalActivatedRewardsOffers;

【问题讨论】:

  • 如果要访问全局变量,不要在本地重新声明!
  • 注意if之后的代码不会等待超时,所以它会在超时函数改变它之前记录totalActivatedOffers的值,即使你修复了变量声明。
  • 谢谢大家,我设法通过将其设为窗口变量来解决问题

标签: javascript scope global-variables


【解决方案1】:

设法通过使其成为窗口变量来解决问题:

window.totalActivatedOffers = totalActivatedSparksOffers + totalActivatedRewardsOffers;

【讨论】:

    猜你喜欢
    • 2012-07-31
    • 1970-01-01
    • 2023-03-20
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 2022-12-06
    相关资源
    最近更新 更多