覆盖函数参数传递的函数定义

时间:2014-04-28 06:13:00

标签: javascript function function-pointers

我有一个函数,如何覆盖函数的定义,该函数作为参数传递给函数参数?

[如果我将函数作为参数传递给函数connect。是应该在全局范围内覆盖它的定义。 ]

以下程序通过硬编码函数名来实现。但是这种方法的问题是我们正在编写函数名称。有没有办法在不知道函数名的情况下覆盖?

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();

连接功能的问题在于我们正在对函数名称进行硬编码

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();

0 个答案:

没有答案