मैंने jsperf.com के साथ खेला है और पाया है कि प्रोटोटाइप फ़ंक्शन 40x धीमी "डिफ़ॉल्ट" घोषित फ़ंक्शन से अधिक है।प्रोटोटाइप डिफ़ॉल्ट घोषित फ़ंक्शन की तुलना में 40x धीमा क्यों है?
String.prototype.contains = function(s){ return !!~this.indexOf(s) }
= 220K ऑप्स/एस
बनाम
function isContains(str, s) { return !!~str.indexOf(s) }
= 8.5KK ऑप्स/एस
पी.एस. मुझे पता है कि प्रोटोटाइप संशोधन सबसे अच्छा मामला नहीं है और इसे 'बंदर पैचिंग' नाम दिया जा सकता है :)
इस चेक बाहर है, यह स्ट्रिंग और संख्या शाब्दिक नहीं बल्कि सरणी शाब्दिक को प्रभावित करता है - http://jsperf.com/shoop-da-whoop –
केवल ज्ञात वर्गों में प्रोटोटाइप जोड़ते समय। http://stackoverflow.com/questions/32847086/javascript-performance-of-extending-string-prototype-is-abysmal-vs-static-funct – Omeriko