JavaScript中基于原型的继承机制是动态的
对象从其原型继承属性,如果创建对象之后原型的属性发生改变,也会影响到继承这个原型的所有实例对象。也就是说如果通过某种方法,修改了类的原型中的属性,那么所有通过该原型创建的实例对象的相应属性也会被改变。
nodejs的hook实现利用以上语言特性,将对象中需要hook的属性所对应的原型进行修改,实现hook之目的。
以下给出一个例子:
wrap函数的实现:
输出打印:
完整代码:
控制台将输出:
6
function start execute.
function finish execute.
6
可以用在线编辑器运行试试
https://tool.lu/coderunner/
领取专属 10元无门槛券
私享最新 技术干货