2009-07-16 5 views
1

私はそのようなものがあります。今、私は干渉したいJavascriptをプロキシ・パターンの問題

// 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はそのプロトタイプのメソッドをすべて失っています。どのように私はこの仕事をすることができましたか?

+0

はそれがあることを想定されていない '返しバー(のparams);'あなたのコードでは? – nimcap

答えて

2
jQuery.extend(Foo.prototype, proxied.prototype); 

あるいは:

Foo.prototype = proxied.prototype;