我有一个代码
var variable = 0;
function add() {
return variable += 1;
}
console.log(add());
console.log(add());Run Code Online (Sandbox Code Playgroud)
我想知道有没有办法只使用函数和范围编写这段代码,就像
function add() {
/* SET INITIAL STATE IF NOT SET*/
/* EXECUTE */
/* RETURN NEW VAL */
}
add(); /* RETURN 1*/
add(); /* RETURN 2*/
Run Code Online (Sandbox Code Playgroud)
得到相同的结果.
谢谢.
......只使用一个功能......
您的代码不会只用一个函数(add).如果您的意思是不希望它关闭variable,您可以将计数存储在其他位置,例如作为函数本身的属性:
function add() {
if (!add.variable) {
add.variable = 0;
}
return ++add.variable;
}
console.log(add());
console.log(add());
console.log(add());Run Code Online (Sandbox Code Playgroud)
但是,当然,这意味着任何代码都可以访问和更改它.
通常的做法是关闭变量,也许将其隐藏在其他任何东西都看不到的范围内:
var add = (function() {
var variable = 0;
return function add() {
return ++variable;
};
})();
console.log(add());
console.log(add());
console.log(add());Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |