【问题标题】:Using variables from other functions in Javascript [duplicate]在Javascript中使用其他函数的变量[重复]
【发布时间】:2016-10-25 09:08:37
【问题描述】:

我已经搜索了互联网,试图找到这个问题的好答案。我主要发现的是在全局范围内移动变量的建议,或者将函数用作我想在其中使用变量的函数的参数,但没有解释它是如何工作的

为了解释我的困境,假设我们有这段代码:

function foo(){
 var x = 2;
}

function bar(){
 var z = 2;
}

function compare(foo,bar){
 if ( z === x ) {
  console.log("text");
}
}

这是我面临的问题。我上面写的代码是否正确,如果我调用 compare() 函数,它应该控制台记录“文本”?

【问题讨论】:

  • x & z 是函数的本地,不能从函数外部访问。
  • 在询问之前你没有测试过你的实际代码吗?它不会起作用。
  • 我知道这行不通。我只是以代码为例,说明我如何从寻找答案的过程中理解它。
  • 在 JavaScript 中,每个函数都有自己的作用域,因此函数的本地变量无法在该函数之外访问。在您的情况下,xy 分别是 foobar 函数的本地函数,因此它们只能在这些函数范围内访问,并且在 compare 函数中调用它们会引发错误,因为 @ 987654329@和y在这个函数中没有定义。

标签: javascript function scope


【解决方案1】:

用全局变量声明它很容易传递另一个函数

var x;
var y;

function foo(){
 x = 2;
}

function bar(){
  z = 2;
}

function compare(){
 if ( z === x ) {
  console.log("text");
}
}

foo()
bar()
compare();

【讨论】:

  • 所以这是唯一的选择,全局声明变量?
  • 这是最常用的一种简便方法。或与localstorge一起使用。您希望将数据保存到本地并检索数据。
猜你喜欢
  • 2014-03-27
  • 2018-01-14
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
相关资源
最近更新 更多