如何在javascript中更改函数中变量的值?

Posted

技术标签:

【中文标题】如何在javascript中更改函数中变量的值?【英文标题】:How to change the value of variable in a function in javascript? 【发布时间】:2015-09-13 07:45:53 【问题描述】:
var e = 15;

function change_value(e)

    e = 10;


change_value(e);

console.log(e);

e 的值仍然是 15。

【问题讨论】:

这并没有改变全局变量。和函数参数值集只执行。 这个答案可能会有所帮助:***.com/questions/19721313/… 【参考方案1】:

当您在函数中有参数时,传递的值会在函数范围内复制并在函数完成时被销毁。

javascript 中的所有变量都是全局创建的,因此您可以直接使用和修改它而无需传递它:

var e = 15;

function change_value()

    e = 10;


change_value();

console.log(e);

【讨论】:

那么我如何在 JavaScript 中通过引用传递?我们在 C++ 中使用 '&' 符号,但我如何在 JavaScript 中做到这一点? @ShehrozSheikh 在 Javascript 中没有通过引用传递这样的东西。【参考方案2】:

函数作用域内的e与全局作用域内的e不同。

去掉函数参数即可:

var e = 15;

function change_value()
    e = 10;


change_value();
console.log(e);

【讨论】:

但就我而言,我需要 e 变量的值。 e 变量在另一个函数中,所以我要传递它。 您可以直接访问该值。例如。 e = e * 10 是的,你解决了我的问题,我首先用空值声明了顶部的变量,然后分配了值。谢谢。【参考方案3】:

javascript 不使用简单类型的引用。它改为使用复制方法。所以你不能这样做。

您有 2 个解决方案。这样:

var e = 15;

function change_value(e) 
    return 10;


e = change_value(e);

或者这个:

var e = 15;

function change_value() 
    e = 10;

但请注意,这个解决方案并不是很干净,它只适用于这个 e 变量。

【讨论】:

我会推荐 OP 作为首选。它没有副作用,这意味着即使在外部范围内具有相同名称的其他变量也不会被无意更改。【参考方案4】:

如果您想将传递的值分配给外部 e 变量,您可以这样做。这只是一个示例。在该块中,您将来可能会有任何逻辑。

var e = 15;
function change_value(e)

    return e;


e = change_value(10);

console.log(e);

但是如果您只想调用函数并更改 e 值,请从函数中删除参数,因为它具有与外部不同的范围。

 var e = 15;
 function change_value()

   e = 10;


change_value(10);

console.log(e);

【讨论】:

以上是关于如何在javascript中更改函数中变量的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何从函数内部更改全局变量的值?

如何在函数外部使用函数的声明变量但将它们的值保留在 javascript 中?

如何更改指针变量的值并将更改保留在函数之外而无需通过引用传递?

matlab函数中如何获取变量的值比如这段程序我想知道执行后a1和a2的值怎么办啊?

为啥我不能更改 Timer.scheduledTimer 函数中变量的值?

尝试使用 html 选择标记更改 javascript 变量