只执行一次函数(闭包的运用)
当实现支付,新增,保存等业务功能时,想要实现无论用户怎们点,我就执行一次的需求,那么我们就利用高阶函数的特性吧—函数作为返回值来实现吧。
上代码
function once (fn){
let done = false;
return function(){
if(!done){
dont= true;
fn.apply(this,arguments)
}
}
}
let pay = once((money)=>{
console.log(`支付${money}元`)
})
pay(10)
pay(10)
pay(10)
pay(10)
无论调用多少次pay函数我就是任性的执行一次,哈哈哈