既存の関数に機能を追加する方法が欲しかったので、次のようにしました。
Function.prototype.attachFunction = function(toAttach)
{
var func = this; //This is the original function, which I want to attack toAttach function to.
//Can I do this without wrapping it in a self-executing function? What's the difference?
func = (function()
{
return function()
{
func();
toAttach();
}
})();
return func; //Return the newly made function, not really important.
}
これをGoogleChromeコンソールに貼り付けましたが、エラーはありませんが、元の機能はまったく変更されていません(または変更されていないように見えます)。
f = function() {console.log("g");};
f.attachFunction(function(){console.log("New function!");});
f(); //Prints out just "g".