JS 中方法的修饰(注入写法)。
假如我有一个函数,执行某功能,程序中我开了一个口子,使用者可以传递新方法来执行这个功能。
那么现在就有2种情况:1. 使用者完全用他提供的方法替代我的。2.使用者依然使用我的,在我之后再使用它的。
封装一个函数:
function inject(processor, fn) {
return (payload) => {
return processor.call(new Context(payload), payload, getFn(fn, payload))
}
}
使用的时候 :
假设我原来的方法是 fun, 接收的参数是一个
// fun是旧的方法
fun_new = function(payload, fun){
// 如果需要执行fun,那么就调用fun,如果不需要,就忽略第二个参数
}
fun = inject(fun_new, fn);
这样的写法,是否使用原方法完全由注入的方法决定。