函数劫持(钩子函数)

94 阅读1分钟

不改变原函数的情况下,将原始函数重构。一些钩子函数的原理就是用的函数劫持。

绑定在对象上的方法如下:

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()