将局部变量从一个函数传递到另一个函数

31

我是JavaScript的初学者,想问以下问题:我有两个简单的函数并想知道是否有任何方法可以从一个函数传递变量值到另一个函数。我知道我可以将其移动到函数外部以便在其他函数中使用,但只需要知道如何拥有一个本地变量并在第二个函数中进行操作。这可能吗?怎么做?

以下是一些代码:

window.onload = function show(){
    var x = 3;
}

function trig(){
    alert(x);
}
trig();

问题是:我如何从我的第二个函数trig中访问在函数show中声明的变量x


你的问题不是很清楚... 你是在一个函数中调用另一个函数吗?请贴出一些示例代码。 - James Allardice
如果您得到了想要的信息,请不要忘记将答案标记为已接受... - Pranay Rana
1
一个简单的方法是使用window对象。无论你在函数内部的哪个位置,都可以使用:window.var1=42;(var1是你的变量,42是你的值)。你可以从程序中的任何其他函数检索此变量。很容易! - mchrgr2000
3个回答

65

第一种方法是

function function1()
{
  var variable1=12;
  function2(variable1);
}

function function2(val)
{
  var variableOfFunction1 = val;
// 然后你将不得不使用这个函数来处理变量1,除非那正是你想要做的,否则它并没有什么帮助。 }
第二种方法是
var globalVariable;
function function1()
{
  globalVariable=12;
  function2();
}

function function2()
{
  var local = globalVariable;
}

我使用了第二种方法,它起作用了。我不是来这个网站只是为了“借”代码。我喜欢确切地理解发生了什么,这样我就可以看到我的逻辑错误在哪里。如果有人能进一步解释,请务必这样做。在第二种方法中,我看到的是声明了一个全局变量,一个将该全局变量赋值为12的函数,然后在一个函数内调用另一个函数将两个函数连接在一起。然后是一个能够将全局变量的值存储到本地变量中的函数。是这样吗? - user2585548
1
@user2585548 第一个函数完全按照问题要求执行。它创建一个本地变量并将其值传递给另一个函数。第二个函数创建一个全局变量并在第一个函数中设置一个值。当从第一个函数调用第二个函数时,使用全局变量的值(在第一个函数中设置)声明一个本地变量。 - Puroto

21

在 @pranay-rana 的列表中增加一个方法:

第三种方法是:

function passFromValue(){
    var x = 15;
    return x;  
}
function passToValue() {
    var y = passFromValue();
    console.log(y);//15
}
passToValue(); 

谢谢。我按照这种方法做了,对我很有效。 - L.U.

-1

你可以非常容易地使用这个来在另一个函数中重复使用变量的值。

// Use this in source
window.var1=  oEvent.getSource().getBindingContext();

// Get value of var1 in destination
var var2=  window.var1;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接