您想创建一个函数,它接受一个参数(一个函数)并代理函数:
function proxyFunc(func) {
console.log("Proxying ", func.name);
var proxied = func;
func = function() {
console.log("Calling proxied ", func.name);
return proxied.apply(this, arguments);
};
}
不幸的是,代理不起作用。我已经发现将代理函数分配给原始函数是个问题,但我不知道如何使其工作:
func = function() { ... }
答案 0 :(得分:4)
你在找这个吗?
function proxyFunc(original) {
console.log("Proxying ", original.name);
return function() {
console.log("Calling proxied " + original.name);
return original.apply(this, arguments);
};
}
对于你正在做的事情,这将有所帮助:
function proxyMember(obj, member) {
var original = obj[member];
console.log("Proxying ", member);
obj[member] = function() {
console.log("Calling proxied " + member);
return original.apply(this, arguments);
};
}
proxyMember(obj, "foo");