use*_*582 0 javascript closures
我写了代码
// Handlers
function successHandlerFactory (savedFlag) {
return function (res, savedFlag){
if (res.data && res.status == 200) {
ngcoupon_offerManager.addOffers(res.data.offers, -1, savedFlag);
console.log('offers response', res, 'savedFlag', savedFlag);
} else {
console.error('something is wrong to get offers', res);
}
}
};
var offerSuccessHandler = function() {
return successHandlerFactory();
}();
var savedofferSuccessHandler = function () {
return successHandlerFactory(true);
}();
Run Code Online (Sandbox Code Playgroud)
但显然它给出了savedFlag undefined我所做的每一个任务.
为什么这不起作用
小智 5
问题出在这部分代码中:
function successHandlerFactory (savedFlag) {
return function (res, savedFlag){
...
Run Code Online (Sandbox Code Playgroud)
您将savedFlag在内部函数中重新声明,该函数最终成为成功处理程序中捕获的变量.尝试简单地删除返回函数的第二个参数.
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |