gpt4 book ai didi

javascript - 具有保存先前状态的功能

转载 作者:行者123 更新时间:2023-11-28 12:15:16 25 4
gpt4 key购买 nike

我有一个代码

var variable = 0;

function add() {
return variable += 1;
}

console.log(add());
console.log(add());

我想知道有没有一种方法可以仅使用函数和范围来编写此代码,例如

function add() {
/* SET INITIAL STATE IF NOT SET*/
/* EXECUTE */
/* RETURN NEW VAL */
}

add(); /* RETURN 1*/
add(); /* RETURN 2*/

得到相同的结果。

谢谢。

最佳答案

...only using one function...

您的代码确实仅使用一个函数(add)。如果您不想让它关闭变量,您可以将计数存储在其他地方,例如作为函数本身的属性:

function add() {
if (!add.variable) {
add.variable = 0;
}
return ++add.variable;
}

console.log(add());
console.log(add());
console.log(add());

但是,当然,这意味着任何代码都可以访问和更改它。

通常的做法是关闭变量,也许将其隐藏在其他人看不到的范围内:

var add = (function() {
var variable = 0;
return function add() {
return ++variable;
};
})();

console.log(add());
console.log(add());
console.log(add());

关于javascript - 具有保存先前状态的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50990202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com