// Case A
function Constructor() {
this.foo = function() {
...
};
...
}
// vs
// Case B
function Constructor() {
...
};
Constructor.prototype.foo = function() {
...
}
मुख्य कारण लोगों को सलाह देने के प्रोटोटाइप का उपयोग कि .foo
प्रोटोटाइप this.foo
के रूप में जब अन्य दृष्टिकोण का उपयोग कर कई बार बनाई गई है जहां के मामले में एक बार बनाया जाता है में से एक का उपभोग करता है।बनाने कार्यों अधिक स्मृति
हालांकि एक दुभाषिए इस अनुकूलन कर सकते हैं उम्मीद करेंगे। इसलिए ए
में फ़ंक्शन foo
फ़ंक्शन की केवल एक प्रति है, बेशक आपके पास बंद होने की वजह से प्रत्येक ऑब्जेक्ट के लिए अभी भी एक अद्वितीय स्कोप संदर्भ होगा लेकिन उसके बाद प्रत्येक ऑब्जेक्ट के लिए एक नया फ़ंक्शन कम ओवरहेड होगा।
क्या आधुनिक जेएस दुभाषिया केस ए को अनुकूलित करते हैं तो फ़ंक्शन foo
फ़ंक्शन की केवल एक प्रति है?
क्या हमारे पास कुछ संदर्भ हैं जो "बेहतर" और "आधुनिक दुभाषिया" को परिभाषित करते हैं – Raynos
आपके परीक्षण मेरे साथ जो भी मिला है उससे मेल खाता है --- मैंने यह भी परीक्षण करने के लिए फ़ंक्शन के अंदर कुछ बड़े कोड ब्लॉक जोड़े हैं स्मृति गुब्बारा किसी भी तेजी से - और यह नहीं था ... समारोह के अंदर कोड कोई अतिरिक्त स्मृति नहीं लेता है। – gnarf
ओह - और मैं भी पहले स्मृति उपयोग लॉग आउट और परीक्षण के बाद अंतर को मापने के लिए इससे पहले कि वस्तुओं – gnarf