JavaScriptでオブジェクトのメソッドを実行時に書き換えること自体は簡単ですが、 オーバーライドメソッド内でもとのメソッドを呼び出したい場合はどうすればよいのでしょうか。 このサンプルコードでは、クロージャーを利用することで名前空間を汚染することなくオリジナルのメソッドを保持し、オーバーライド1を実現しています。 var anObject = { state: "hoge", getState: function () { return this.state; } }; anObject.getState(); // "hoge" anObject.getState = (function () { var context = anObject; var original = anObject.getState; return function () { return "state: