Javascript 如何创建递增全局值的函数?
我目前正在尝试对一个变量执行一些简单的操作,这个变量的值为零。首先,我声明一个变量并给它一个值(0)。其次,我正在创建一个函数,该函数应该在调用该函数时增加变量的值。这是我的代码:Javascript 如何创建递增全局值的函数?,javascript,function,Javascript,Function,我目前正在尝试对一个变量执行一些简单的操作,这个变量的值为零。首先,我声明一个变量并给它一个值(0)。其次,我正在创建一个函数,该函数应该在调用该函数时增加变量的值。这是我的代码: var orderCount = 0; function takeOrder(orderCount) { return orderCount++; } takeOrder(orderCount); takeOrder(orderCount); alert(orderCount); 上面代码段的exptecte
var orderCount = 0;
function takeOrder(orderCount) {
return orderCount++;
}
takeOrder(orderCount);
takeOrder(orderCount);
alert(orderCount);
上面代码段的exptected结果将是“2”,因为函数被调用两次,因此数字0应该增加两次
我还尝试使用以下代码而不是上面发布的代码递增变量“orderCount”:
function takeOrder(orderCount) {
return orderCount + 1;
}
两者都不起作用。我做错了什么 从参数列表中删除
orderCount
,调用函数时不要将其作为参数。通过将其指定为一个参数,您正在隐藏(隐藏)takeOrder
关闭的全局变量
var orderCount=0;
函数takeOrder(){
//^-----不要将'orderCount'作为参数
返回orderCount++;
}
takeOrder();// 从参数列表中删除orderCount
,调用函数时不要将其作为参数。通过将其指定为一个参数,您正在隐藏(隐藏)takeOrder
关闭的全局变量
var orderCount=0;
函数takeOrder(){
//^-----不要将'orderCount'作为参数
返回orderCount++;
}
takeOrder();// 两个事实:
函数的参数的作用类似于函数范围内的变量。你
可以重新分配它、增加它等。一旦函数完成执行,所有这些更改都将消失
与“全局”变量同名的局部变量隐藏了后者
内部功能体,因此使所有内部功能变化与外部世界隔离
更改参数名也不会有帮助,因为全局变量的值将放在函数调用堆栈上。事实上,传递任何变量都毫无帮助
典型的解决方案是根本不使用参数,直接在外部范围内更改函数变量
但是,可以模拟向变量传递“引用”。如果确实希望函数不知道全局变量名:
var顺序={count:0};
var anotherOrder={count:0};
函数takeOrder(订单){
order.count++;
}
订单;
订单;
takeOrder(另一个订单);
console.log(“订单:+Order.count”);
log(“另一个订单:+anotherOrder.count”)代码>两个事实:
函数的参数的作用类似于函数范围内的变量。你
可以重新分配它、增加它等。一旦函数完成执行,所有这些更改都将消失
与“全局”变量同名的局部变量隐藏了后者
内部功能体,因此使所有内部功能变化与外部世界隔离
更改参数名也不会有帮助,因为全局变量的值将放在函数调用堆栈上。事实上,传递任何变量都毫无帮助
典型的解决方案是根本不使用参数,直接在外部范围内更改函数变量
但是,可以模拟向变量传递“引用”。如果确实希望函数不知道全局变量名:
var顺序={count:0};
var anotherOrder={count:0};
函数takeOrder(订单){
order.count++;
}
订单;
订单;
takeOrder(另一个订单);
console.log(“订单:+Order.count”);
log(“另一个订单:+anotherOrder.count”)代码>只需调用函数而不传递参数
var orderCount=0;
函数takeOrder(){
返回orderCount++;
}
takeOrder();
takeOrder();
警报(订单计数)代码>只需调用函数而不传递参数
var orderCount=0;
函数takeOrder(){
返回orderCount++;
}
takeOrder();
takeOrder();
警报(订单计数)代码>