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