1
我只是想確認,我不會錯過管理上下文和覆蓋方法的事情。我在node.js應用程序中使用http代理模塊,我需要重寫HttpProxy.prototype.proxyRequest函數。我想直接修改原始模塊代碼,但一直沒有找到辦法做到這一點。覆蓋JavaScript函數,同時保留原始上下文
如果我這樣做:
var httpProxy = require('http-proxy'),
httpProxyOverride = require('./http-proxy-override.js');
httpProxy.HttpProxy.prototype.proxyRequest = httpProxyOverride.proxyRequestOverride;
然後我失去了原有的內容和錯誤拋出。如果我使用apply(),我可以提供一個新的上下文,但它不會出現,我可以保留原始上下文。
基於關閉此SO線程: Is it possible to call function.apply without changing the context? 它不會出現有一種方法可以實現我想要做的,我希望如果我有人可以證實這一點或指正錯誤。
事實證明,我原來的做法是不正確的服用。 http-proxy提供了一個事件('proxyResponse'),它提供了改變必要行爲與直接覆蓋代碼的訪問權限。然而,這是你的迴應,導致我在這個發現的絆腳石,所以我會給你信貸。謝謝。 – opike