有没有将函数包装在匿名函数中的优势?我的意思是一个特定的例子:
function asyncFuntion(callback) {
setTimeout(callback, 6000);
};
asyncFuntion(function() {
console.log('Calling after 6 s.');
});
并且使用封装的函数:
function asyncFuntion(callback) {
setTimeout(function() {
callback();
}, 6000);
};
asyncFuntion(function() {
console.log('Calling after 6 s.');
});
在这两种情况下输出结果是相同的。那么它们有什么区别呢? 第二个版本是我学习js时发现的。 我意识到当我们需要闭包时,这样的形式是有用的,但在这里呢?
setTimeout(callback.bind(this, 'This works aswell'), 6000);
- jAndysetTimeout(callback, 6000, 'This works as well')
;) - Andy Eapply
对于那个目的不够用。我们不希望回调立即执行,但是我们想要在稍后的某个时间点绑定上下文和参数进行调用。因此,bind()
是相对较新的。 - jAndy