如何更改传递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
本身?
答案 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)