我是一名Python编码人员,进一步了解Javascript。
由于某种原因,我在理解闭包方面有些困难。我已经生成了简单的Adder函数(即应该执行类似Add(1)= 1,Add(2)= 3 ...)
我一直试图通过console.log /打印所有内容来了解幕后情况,但是我对这些功能的不同之处感到困惑,如果它们是:
var makeAdder = function(num){
var addNum=num;
var letsAdd = function(num){
return addNum+=num;
};
return letsAdd;
};
var makeAdder = function(numa){
var letsAdd = function(numb){
return numa+numb;
};
return letsAdd;
};
var a = makeAdder(2);
console.log(a(5));
// should produce 7 at the end
任何资源或帮助将不胜感激!我尚未找到有关“关闭”的好文章/:
最佳答案
不使用闭包的简单加法器函数的解决方案。
function makeAdder(num){
if(!this.addNum){
this.addNum=0;
}
return this.addNum+=num;
}
console.log("------------makeAdder----------");
console.log(makeAdder(10)); // output - 10
console.log(makeAdder(20)); // output - 30
console.log(makeAdder(30)); // output - 60
关于javascript - Javascript —带简单加法器功能的闭包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36053280/