21
に追加しますか? は明らかに、この構文はひどく間違っているが、それは一般的なアイデアだ...私は変更することはできません機能を持っているJavaScript関数
function addToMe() { addToMe() + doOtherStuff(); }
に追加しますか? は明らかに、この構文はひどく間違っているが、それは一般的なアイデアだ...私は変更することはできません機能を持っているJavaScript関数
function addToMe() { addToMe() + doOtherStuff(); }
あなたは、元の関数への参照を格納し、元の1をコールバックして、追加機能と、それをオーバーライドすることができますあなたが望む機能:
var originalFn = addToMe;
addToMe = function() {
originalFn(); // call the original function
// other stuff
};
JavaScriptをfunctionsがfirst-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
これはおそらく最も簡単な解決策です! – mauris
完璧です:)あまりにも簡単です。 –
ありがとう:)そのような優雅なソリューション。 – silkcom