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

Posted

技术标签:

【中文标题】将局部变量从一个函数传递到另一个函数【英文标题】:Passing a local variable from one function to another 【发布时间】:2012-05-21 17:22:24 【问题描述】:

我是 javascript 的初学者,想问以下问题:我有两个简单的函数,想知道是否有任何方法可以将变量值从一个函数传递到另一个函数。我知道我可以将它移到函数之外以便在其他函数中使用,但只需要知道如何拥有一个局部变量并在我的第二个函数中使用它。这可能吗?如何实现?

这里有一些代码:

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


function trig()
    alert(x);

trig();

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

【问题讨论】:

你问的不是很清楚......你是从另一个函数中调用一个函数吗?贴一些示例代码。 如果你得到你想要的信息,不要忘记将答案标记为已接受...... 【参考方案1】:

第一种方法是

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 第一个完全符合问题的要求。它创建一个局部变量并将其值传递给另一个函数。第二个函数创建一个全局变量并在第一个函数中设置一个值。当从第一个函数调用第二个函数时,使用全局变量的值(在第一个函数中设置)声明一个局部变量。【参考方案2】:

添加到@pranay-rana 的列表:

第三种方法是:

function passFromValue()
    var x = 15;
    return x;  

function passToValue() 
    var y = passFromValue();
    console.log(y);//15

passToValue(); 

【讨论】:

谢谢。我遵循了这个方法。对我来说效果很好。【参考方案3】:

您可以很容易地使用它在另一个函数中重用变量的值。

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

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

【讨论】:

以上是关于将局部变量从一个函数传递到另一个函数的主要内容,如果未能解决你的问题,请参考以下文章

函数栈帧问题

关于全局变量和局部变量的理解

将指向局部变量的指针传递给函数:它安全吗?

如何将局部变量传递给熊猫中的用户定义函数?

是否可以 module.exports 从异步函数中导出局部变量?

函数调用过程栈帧变化详解