函数劫持(钩子函数)

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

绑定在对象上的方法如下

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

你可能感兴趣的:(函数劫持(钩子函数))