本文主要目的:函数作为返回值,可以让方法更灵活,更加具有实用性;
案例:模拟支付方法,避免重复点击,函数重复执行,重复支付
function once (fn) {
let done = false // 定义一个标记,如果执行过,就变成True
if(!done) {
done = true
return function () {
return fn.apply(this, arguments)
}
}
}
const pay = once(function (money) {
console.log(`您支付了${money} RMB`)
})
pay(5)
pay(5)
pay(5)
pay(5)
pay(5)