想要将一个参数传递给我的函数(一个数字-0),并且每次调用我的函数时,我都希望将此参数增加一个(这样它的值将为arg = 0然后arg = 1然后arg = 2等等。
但是,当然,每次我在函数中本地增加它时,它都会全局重置为零。
想不出任何(简单的)解决方案,这是我的简化代码...
var arg = 0
function test(arg) {
arg += 1;
console.log(arg)
}
test(arg);
test(arg);
答案 0 :(得分:0)
您可以获取一个对象,因为该对象已被引用覆盖,并增加了它的属性。原始值(如数字值)将按值移交。
npx npm-check --update
答案 1 :(得分:0)
无需清理变量名以提高可读性,这应该根据您所遇到的问题而起作用。
var arg = 0;
function test(arg) {
arg += 1;
console.log(arg);
return arg
}
arg = test(arg);
arg = test(arg);
答案 2 :(得分:0)
就像其他评论者所说,JS是按值调用的,因此您将无需编辑该局部变量。还有一些其他选项,例如以下
var arg = 0;
function test() {
arg = arg + 1;
return arg;
}
console.log(test())); // Would output 1
console.log(arg); // Would also output 1
答案 3 :(得分:0)
仅仅因为发电机很时髦,所以这是发电机的版本:
function* increaseByOne(i) {
while (true) {
i++;
yield i;
}
}
var gen = increaseByOne(0);
console.log(gen.next().value); //1
console.log(gen.next().value); //2
console.log(gen.next().value); //3
console.log(gen.next().value); //4