ये विधियां जो ध्यान में आती हैं, प्रत्येक के पेशेवर और विपक्ष क्या हैं?मैं XMLHttpRequest wrapper/प्रॉक्सी कैसे बना सकता हूं?
विधि 1: में वृद्धि देशी उदाहरण
var _XMLHttpRequest = XMLHttpRequest;
XMLHttpRequest = function() {
var xhr = new _XMLHttpRequest();
// augment/wrap/modify here
var _open = xhr.open;
xhr.open = function() {
// custom stuff
return _open.apply(this, arguments);
}
return xhr;
}
विधि 2: उप "वर्ग" देशी XMLHttpRequest
var _XMLHttpRequest = XMLHttpRequest;
XMLHttpRequest = function() {
// definePropertys here etc
}
XMLHttpRequest.prototype = new _XMLHttpRequest());
// OR
XMLHttpRequest.prototype = Object.create(_XMLHttpRequest);
// custom wrapped methods on prototype here
XMLHttpRequest.prototype.open = function() {
// custom stuff
return _XMLHttpRequest.prototype.open.apply(this, arguments);
}
विधि 3: देशी XMLHttpRequest
var _XMLHttpRequest = XMLHttpRequest;
XMLHttpRequest = function() {
this.xhr = new _XMLHttpRequest();
}
// proxy ALL methods/properties
XMLHttpRequest.prototype.open = function() {
// custom stuff
return this.xhr.open.apply(this.xhr, arguments);
}
आपकी पहली विधि मेरे लिए गलत लगती है। मुझे डर है कि जब तक आप स्टैक ओवरफ़्लो प्राप्त नहीं करेंगे तब तक आप एक रिकर्सिव लूप में आ जाएंगे। ;) और आप इसे वैसे भी क्यों चाहते हैं? बहुत सारे neater समाधान हैं, जिन्हें एक संदर्भित वस्तु को फ़ंक्शन कॉल प्रदान करने की आवश्यकता नहीं है। –
मार्सेल: आप सही हैं, यह एक प्रकार था, मैंने इसे ठीक कर दिया है। – tlrobinson
ThiefMaster: मेरे अधिकांश प्रश्नों का पर्याप्त उत्तर कभी नहीं दिया जाता है ... – tlrobinson