Javascript - 方法注入 Method Injection 'monkey-patching'

mac2022-06-30  26

读Javascript: The Definitive Guide这本书的时候发现一个有意思的代码,可以在调用方法的之前和之后注入一些回调或者代码,分享给大家:

// Define a method. function addBy10(val) { return val + 10; } var obj = { 'myMethod': addBy10 }; obj.myMethod(5); // “monkey-patching.” function trace(o, m){ var original = o[m]; o[m] = function() { console.log(new Date(), "Entering", m); var result = original.apply(this, arguments); console.log(new Date(), "Exiting:", m); return result; }; } // Method injection trace(obj, 'myMethod'); // Call the method again obj.myMethod(5); // 部分代码取自:Javascript Definitive Guide的8.7.3 The call() and apply() Methods

 

最新回复(0)