Javascript 重写函数参数传递的函数的定义

Javascript 重写函数参数传递的函数的定义,javascript,function,function-pointers,Javascript,Function,Function Pointers,我有一个函数,如何重写作为参数传递给函数参数的函数定义 [如果我将函数作为参数传递给函数connect.Is,则应覆盖其在全局范围内的定义。] 下面的程序通过硬编码函数名来实现这一点。但这种方法的问题是我们正在硬编码函数名。有没有一种方法可以在不知道函数名的情况下重写 f1 = function () { console.log("f1"); } connect = function () { var x = arguments; var oldClass = arg

我有一个函数,如何重写作为参数传递给函数参数的函数定义

[如果我将函数作为参数传递给函数connect.Is,则应覆盖其在全局范围内的定义。]

下面的程序通过硬编码函数名来实现这一点。但这种方法的问题是我们正在硬编码函数名。有没有一种方法可以在不知道函数名的情况下重写

f1 = function () {
    console.log("f1");
}


connect = function () {
    var x = arguments;
    var oldClass = arguments[0]; // Copy original before overwriting
    f1 = function () {
        console.log("overwritten");
        oldClass.apply(this, arguments);
    };
    f1.prototype = oldClass.prototype;
}

connect(f1);
f1();
connect函数的问题是我们正在硬编码函数名

connect2 = function () {
    var x = arguments;
    var oldClass = arguments[0]; // Copy original before overwriting
    arguments[0] = function () {
        console.log("overwritten");
        oldClass.apply(this, arguments);
    };
    arguments[0].prototype = oldClass.prototype;
}

connect2(f1);
f1();

你在问什么?“如果我将一个函数作为参数传递给函数connect,这真的不清楚。Is应覆盖其在全局范围内的定义。@VivekGoel为什么要替换原型?你为什么要调用
旧类
?你到底想干什么?重写函数是解决问题的方法。但真正的问题是什么?应该吗?我不认为你能传递函数,但我打赌你能传递一个等于函数调用的变量。@Brendan那是一个面试问题。所以我无法控制争论。