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 に答える