我有一个函数,如何覆盖函数的定义,该函数作为参数传递给函数参数?
[如果我将函数作为参数传递给函数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();