कॉफीस्क्रिप्ट विधि में भी कमी के फायदे हैं।
my other answer से:
सबसे उचित वर्गों के लिए, CoffeeScript द्वारा उत्पन्न बंद छोटे minified उत्पादन उत्पन्न करता है। बंद आवरण minified भूमि के ऊपर के 25 बाइट्स है, लेकिन यह classname दोहरा से बचाता है, k * N
बाइट्स बचत (k = पत्र में नाम, एन = संख्या के- refs)। उदा।, यदि BoilerPlateThingyFactory
जैसी कक्षा में 2+ विधियां हैं, तो क्लोजर रैपर छोटे minified कोड उत्पन्न करता है।
// Uglify '1.js' = 138 bytes (197 w/ whitespace):
var Animal=function(){function e(e){this.name=e}return e.prototype.speak=function(e){return"My name is "+this.name+" and I like "+e},e}();
// with whitespace ("uglifyjs -b"):
var Animal = function() {
function e(e) {
this.name = e;
}
return e.prototype.speak = function(e) {
return "My name is " + this.name + " and I like " + e;
}, e;
}();
ryeguy वैकल्पिक "मुहावरेदार" कार्यान्वयन इस के लिए minifies:
और अधिक विस्तार में ...
कॉफी के लिए एक बंद minifies का उपयोग कर कोड जनरेट :
// Uglify '2.js' = 119 bytes (150 w/ whitespace):
var Animal=function(t){this.name=t};Animal.prototype.speak=function(e){return"My name is "+this.name+" and I like "+e};
// with whitespace ("uglifyjs -b"):
var Animal = function(t) {
this.name = t;
};
Animal.prototype.speak = function(e) {
return "My name is " + this.name + " and I like " + e;
};
ध्यान दें कि कैसे कॉफी नाम में "पशु" नाम ठीक है, और राईगुय के "मूर्खतापूर्ण" भिन्नता में एन = 2 बार। अब "पशु" केवल 6-अक्षर है, और केवल 1 विधि है, इसलिए यहां कॉफी 25-6 = 1 बाइट्स से हारनी चाहिए। मेरे मिनीफाइड कोड से परामर्श, यह 138 बाइट्स है जो डेल्टा के लिए 13 बाइट्स है ... 1 9 बाइट्स। 4 और तरीके जोड़ें, और लाभ कॉफी पर स्विच होगा। और यह सिर्फ विधियों नहीं है; कक्षा स्थिरांक और अन्य रेफरी प्रकार भी गिनती हैं।
स्रोत
2012-08-18 01:45:52
एक व्यक्तिपरक और तर्कवादी करीबी वोट? वास्तव में? यह एक वैध सवाल है कि एक अज्ञात फ़ंक्शन में फ़ंक्शन को लपेटना क्यों जरूरी है। – ryeguy