如何更改传递params的函数?

时间:2018-04-26 04:22:12

标签: javascript

如何更改传递params的功能?

function minus_num(num) {
  num -= 1
}

var num_test = 10

while (num > 0){
  minus_num(num_test)
}

console.log(num)  // there I want to get the 0, but it is infinite loop, because the `num` will have a copy in the function.

如何更改num_test本身?

3 个答案:

答案 0 :(得分:0)

您需要在扣除后返回值的功能,然后您需要将结果分配给num

但是num_test永远不会在您的代码中明确声明。您可能希望将function minus_num(num) { return num - 1 } var num_test = 10 while (num_test > 0){ num_test = minus_num(num_test) } console.log(num_test)放在循环中:

{{1}}

答案 1 :(得分:0)

原语按值传递,因此您无法就地更改它们。相反,您必须从函数返回更改的值并将其分配回相同的变量:

'str'

对于您当前的实现,您将收到function minus_num(num) { num -= 1; return num; } var num_test = 10 while (num_test > 0) { num_test = minus_num(num_test) } console.log(num_test);未定义的错误,因为您在使用之前从未声明过它。

请阅读this post以了解有关传递给函数的变量的更多信息。

答案 2 :(得分:0)

我认为应该是

function minus_num(num) {
   return num - 1
}

var num_test = 10

while (num_test > 0){
  num_test = minus_num(num_test)
}

console.log(num_test)