我有这样的东西:
// original function
Foo = function(params) {
do foo...
}
Foo.prototype.alert = function() {
alert('foo');
}
现在我要干涉:
Bar = Foo;
Foo = function(params) {
do bar...
return Foo(params);
}
或者 JQuery 方式:
(function() {
var proxied = Foo;
Foo = function() {
do bar...
return proxied.apply(this, arguments);
};
})();
现在的问题是 Foo 缺少它所有的原型(prototype)方法。知道我如何才能完成这项工作吗?
最佳答案
jQuery.extend(Foo.prototype, proxied.prototype);
甚至:
Foo.prototype = proxied.prototype;
关于Javascript代理模式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1136916/