这可能吗?如果可以,怎么办?(我还没有找到让它工作的方法)
var foo = function()
{
console.log("Original Function");
this = function()
{
console.log("New Function");
}
};
console.log("Calling foo()");
foo();
期望的输出:
原始功能
调用 foo()
新功能
要提前回答问题,是的,我知道还有其他方法可以做到这一点。我只是好奇我是否可以做类似的事情var bar = new foo();
并在foo()
没有额外功能的情况下为其自身分配一些时间相关的属性。
编辑:对 Charmanders 问题的回应,以及稍微不那么简化、更实际的应用
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));