我在 javascript 方面很新,并尝试一些编码。看看这个代码片段,为什么我得到的结果是 2 而不是 3?
var cbsample = function (cb) {
var value = 1;
console.log(value);
return cb(value)(value);
};
var myvalue = cbsample(function (value) {
value += 1;
console.log(value);
return function (value) {
console.log(value);
return value += 1;
};
});
console.log(myvalue);
当我调用回调时,它将值更改为 2,但闭包不采用这个新值(2),它采用旧值(1)。为什么?