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

讀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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章