改变"这"在原型上下文中替换函数体

时间:2015-04-17 15:28:12

标签: javascript prototype

我只是想知道是否有可能更改其内部的功能主体自己的原型。像这样:

Function.prototype.replace(newFun)
{
    this = newFun;
}

我在分配错误时收到无效的左侧。 我希望实现以下目标:

var fun1 = function(x, y)
{
   return x+y;
}

fun1.replace(Function(["x", "y"], "return x*y;"));

在javascript中可以吗?我该怎么办?

1 个答案:

答案 0 :(得分:1)

在Javascript中,函数都是Function objects

可以使用 arguments.callee 动态获取对其体内当前函数的引用。

不幸的是,Function对象没有setter方法。他们是不变的。您需要创建自己的可变函数类,它包含一个包含函数的可修改属性。