我试图在 JavaScript 中的 自调用函数
中传递一个 callback
函数,但是当 done
函数是执行。
我读了this answer在下面编写此代码:
function done() {
console.log(dateFilter.getI());
console.log(dateFilter.getF());
}
var dateFilter = (function(callback) {
var _dInicio = new Date(), _d = new Date(),
_dFim = new Date(_d.setMonth(new Date().getMonth() - 1));
return {
getI: function() { return _dInicio; },
getF: function() { return _dFim; },
setI: function(d) { _dInicio = d; },
setF: function(d) { _dFim = d; }
}, callback();
})(done);
也许我正在使用 comma operator错了,但我认为这应该有效。有人可以指出我误解了什么吗?
最佳答案
您在 return
之后调用了 done
函数,此外,您没有传递参数 dateFilter
。
return { -> return before calling callback `function`.
getI: function() { return _dInicio; },
getF: function() { return _dFim; },
setI: function(d) { _dInicio = d; },
setF: function(d) { _dFim = d; }
}, callback( );
^
|_ Calling callback without param `dateFilter`
看这段代码
function done(dateFilter) {
console.log(dateFilter.getI());
console.log(dateFilter.getF());
}
(function(callback) {
var _dInicio = new Date(),
_d = new Date(),
_dFim = new Date(_d.setMonth(new Date().getMonth() - 1));
callback({
getI: function() {
return _dInicio;
},
getF: function() {
return _dFim;
},
setI: function(d) {
_dInicio = d;
},
setF: function(d) {
_dFim = d;
}
});
})(done);
看到了吗?现在正在打印值。
关于JavaScript - 在自调用函数中传递回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48648780/