我目前正在尝试对给定值为零的变量执行一些简单的操作。首先,我声明一个变量并将其值设为(0)。其次,我正在创建一个函数,该函数在调用该函数时应该增加变量的值。这是我的代码:

var orderCount = 0;

function takeOrder(orderCount) {
return orderCount++;
}

takeOrder(orderCount);
takeOrder(orderCount);

alert(orderCount);


上面的代码段的预期结果为“ 2”,因为该函数被调用了两次,因此数字0应该增加两次。

我还尝试使用以下代码而不是上面发布的代码来递增变量“ orderCount”:

function takeOrder(orderCount) {
return orderCount + 1;
}


都不行。我究竟做错了什么?

最佳答案

从参数列表中删除orderCount,并且在调用函数时不要将其作为参数。通过将其指定为参数,可以隐藏(隐藏)takeOrder关闭的全局变量。



var orderCount = 0;

function takeOrder() {
//                 ^----- don't include `orderCount` as a parameter
    return orderCount++;
}

takeOrder(); // <== don't specify it when calling the
takeOrder(); // <== function (though it would just be ignored)

alert(orderCount);

关于javascript - 如何创建一个递增全局值的函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47659555/

10-11 00:55