2009-11-02 1 views

答えて

41

あなたは、元の関数への参照を格納し、元の1をコールバックして、追加機能と、それをオーバーライドすることができますあなたが望む機能:

var originalFn = addToMe; 

addToMe = function() { 
    originalFn(); // call the original function 
    // other stuff 
}; 

JavaScriptをfunctionsfirst-classオブジェクトであるので、あなたはこれを行うことができます。

編集:また、保存するために引数を指定して自動実行する関数式を使用することができ

addToMe = function() { 
    originalFn.apply(this, arguments); // preserve the arguments 
    // other stuff 
}; 

:あなたの関数は、引数を受け取る場合は、元の関数にそれらを渡すためにapplyを使用する必要があります元の関数の参照、私は少しきれいだと思う:

addToMe = (function (originalFn) { 
    return function() { 
    originalFn.apply(originalFn, arguments); // call the original function 
    // other stuff 
    }; 
})(addToMe); // pass the reference of the original function 
+0

これはおそらく最も簡単な解決策です! – mauris

+0

完璧です:)あまりにも簡単です。 –

+0

ありがとう:)そのような優雅なソリューション。 – silkcom

関連する問題