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

function change_value(e){

    e = 10;
}

change_value(e);

console.log(e);

e 的值仍然是 15。

【问题讨论】:

标签: javascript jquery


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-12
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-02
    • 2018-04-24
    • 1970-01-01
    相关资源
    最近更新 更多