我有一个 scrolltobottom()
函数,它在每个函数执行后运行。
如何重构代码以便我不需要在任何地方输入 scrolltobottom()
?
最好不使用 Jquery。
async function initBot () {
let botui = BotUI('homepage-bot', {
vue: Vue
})
let scrolltobottom = () => {
let ele = document.getElementById('botui')
document.body.scrollTop = ele.clientHeight
}
await botui.message.bot({"Hello"})
await scrolltobottom()
await botui.message.bot({"Do you like apple or orange?"})
await scrolltobottom()
await botui.message.button({"Orange", "Apple"})
await scrolltobottom()
}
最佳答案
你可以创建一个装饰器函数
function decorateWith(targetFn, fn){
return function(){
targetFn.apply(this, arguments);
fn();
}
}
[ botui.message.bot,
botui.message.button ]
.forEach(fn => decorateWith(fn, scrolltobottom));
关于javascript - 在每个函数被调用后执行一段代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45852138/