3

JavaScript では、既存の関数と同じ名前の新しい関数を作成しながら、新しい関数内から呼び出すことができるように元の関数を保持するにはどうすればよいでしょうか?

4

3 に答える 3

8

元の関数にアクセスできる置換関数を返す無名関数に元の関数を渡すことができます。

例えば

parseInt = (function parseInt(original) {
    return function (x) {
        console.log("original would've returned " + original(x));

        // just random 'new' functionality
        return (x | 0) * 2;
    };
}(parseInt));

出力例:

>> parseInt(10);
<< original would've returned 10
<< 20
于 2010-06-10T02:17:51.550 に答える
2

関数ラッピングを実装したい場合は、次の記事を確認してください。

于 2010-06-10T02:18:45.160 に答える
1

古い関数を別の名前の変数に割り当てるだけです。

var old_parseInt = parseInt;

function parseInt(s) {
   return old_parseInt(s) + 1;
}
于 2010-06-10T02:27:52.623 に答える