तो मैं कोड के इस टुकड़े मिल गया है और यह स्पष्ट रूप से काम करता है (के रूप में यह साल के लिए उत्पादन में किया गया है):स्वयं जावास्क्रिप्ट फ़ंक्शन को नष्ट करना - यह कैसे काम करता है?
window[someMethod] = function (tmp) {
callback({prop:"val"}, tmp);
// Garbage collect
window[someMethod] = undefined;
try {
delete window[someMethod];
}
catch (e) { }
if (head) {
head.removeChild(script);
}
// head refers to DOM head elem and script refers to some script file elem
};
पता करने के लिए उत्सुक है, यह कैसे काम करता है?
- यह कैसे
delete
हीundefined
अपने शरीर के भीतर औरtry
को ही सेट कर सकते हैं? - क्या ब्राउज़र को कॉल समाप्त होने तक
undefined
औरdelete
निष्पादित नहीं करना है? और कैसे? - यदि ब्राउज़र तुरंत इसे हटा देता है, तो उसके बाद क्या होता है? क्या आखिरी पंक्ति चलती है?
- अंत में, क्या आप लोग इस लीकिंग मेमोरी को देखते हैं? यदि हां, तो कैसे?
भले ही कॉलबैक फ़ंक्शन कहीं भी 'tmp' के संदर्भ को बरकरार रखे, मुझे नहीं लगता कि स्मृति मेमोरी क्यों होगी ... –
आप शायद सही, अद्यतन उत्तर हैं। – yan
यह बहुत उपयोगी है। मुझे लगता है कि इसे पोस्ट करने से पहले आज एक मस्तिष्क था! – Mrchief