これは可能ですか?(私はそれが機能する方法を見つけることができませんでした)
var foo = function()
{
console.log("Original Function");
this = function()
{
console.log("New Function");
}
};
console.log("Calling foo()");
foo();
望ましい出力:
オリジナル機能
foo() の呼び出し
新機能
事前に質問に答えるために、はい、これを行う他の方法があることを知っています. 追加の機能なしで、時間に依存するプロパティを自分自身に割り当てることができるかどうかに興味がありvar bar = new foo();
ます。foo()
編集:ヒトカゲの質問への回答、およびやや単純化されていない、より実用的なアプリケーション
var node = function(parent)
{
this = function()
{
for (i in this)
{
// perform actions (which will occasionally include calling i()
}
}
if (parent !== null)
{
this.parent = parent;
// code to determine children
this.somechild = new node(this);
this.someotherchild = new node(this);
}
};
var ancestor = new node(new node(null));