不改变原函数的情况下,将原始函数重构。一些钩子函数的原理就是用的函数劫持。
绑定在对象上的方法如下
let obj1 = {
test:function () {
console.log('test')
},
jack: function (obj,method,fn) {
let orig = obj[method]
obj[method] = fn(orig)
}
}
obj1.jack(obj1,'test',(orig) => {
console.log("jack正常执行体")
return function() {
console.log('劫持增加执行体逻辑部分')
orig.call(obj1)
}
})
obj1.test()