jsで引数付きのメソッドを上書き拡張する方法
次のような方法であるオブジェクトの全てのメンバを拡張する処理を書いています。
拡張すると元のメソッドを呼んだ時に追加で「console.log("add" + name);」が実行されるようにしています。
ここでfuncAとfuncBは問題ないのですが、引数があるfuncCを拡張する方法で迷っています。
解決策をお持ちの方がいらしたら教えていただけると助かります。
<script>
var SomeObj = {
funcA: function(){
console.log("Do FuncA!!");
},
funcB: function(){
console.log("Do FuncB!!");
},
funcC: function(arg1,arg2){
console.log(arg1 + arg2);
}
};
for(i in SomeObj){
if(SomeObj.hasOwnProperty(i) && typeof SomeObj[i] === "function"){
//console.log(i);
SomeObj[i] = (function(){
var tmp = SomeObj[i];
var name = i;
var f = function(){
tmp();
console.log("add" + name);
};
return function(){
return f();
};
})();
}
}
SomeObj.funcA();
SomeObj.funcB();
SomeObj.funcC("a", "b");
</script>