1

我有函数change(x)接受一个整数并改变它的值

function change(x) {
   x=26;
}

然后我创建一个变量并尝试更改它的值

window.onload=function(){
   var a = 10;
   change(a);
   console.log(a);
}

a并没有像我预期的那样改变。是否可以在不使用 return 的情况下以简单的方式在 JavaScript 中实现此行为?我宁愿避免使用对象和全局变量。

这是我的整个代码:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
   <script>
   function change(x) {
      x=26;
   }
   window.onload=function(){
      var a = 10;
      change(a);
      console.log(a);
   }
   </script>
</body>
</html>
4

3 回答 3

2

JavaScript 总是按值传递参数,所以你不能像你最初写的那样做。

但是,对象的值是引用,因此您可以使用对象。

但是,这对于这个用例来说会令人困惑。您应该让该函数返回转换后的数字。

于 2013-03-31T11:34:07.613 回答
0

您不能像那样(或根本不)通过引用传递变量。您可以做的是传递一个对象并修改其属性:

function change(obj) {
    obj.a = 4;
}

var obj = {a: 0};
change(obj);

// obj.a is "4" now
于 2013-03-31T11:34:34.993 回答
-2

我这样做了,它奏效了:

function change(x) {   
  x=26;  
  return x;  
}  
  window.onload=function(){  
  var a = 10;  
  console.log(change(a));  
}

希望能帮助到你

于 2013-03-31T11:42:36.173 回答