这是我的自执行功能:
var incrementInt = (function() {
var manyOut = 10;
if(incInt) {
incInt+=manyOut;
} else {
var incInt = 0;
}
return {
s: incInt,
m: manyOut
};
})();
我已经将变量incInt和manyOut私有化,并将变量incretInt绑定到返回的对象。
我的目标是创建一个返回一个对象的函数,其中一个属性是一个整数,该整数在每次调用时都会递增。我希望递增变量具有尽可能窄的范围。
我上面的解决方案的问题是,每次调用函数时都会重新初始化变量incInt。由于其在函数中的作用域,该变量会自动销毁。
最佳答案
您将需要使用方法来添加和获取变量incInt
。
var incrementInt = (function() {
var manyOut = 10,
incInt = 0;
return {
add: function() {
return incInt += manyOut;
},
getInt: function() {
return incInt;
}
};
})();
var a = incrementInt;
a.add();
a.add();
a.getInt(); // 20
关于javascript - 如何使用增量函数避免全局变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12451877/