Сжатие js кода
Подскажите, есть ли минификатор, который умеет сжимать свойства this (а также внешние) следующим образом:
function test() { this._View.bla(); this._View.bla(); this._View.bla(); this._View.bla(); this._View.bla(); this._View.bla(); }; => function test() { var n = this._View; n.bla(); n.bla(); n.bla(); n.bla(); n.bla(); n.bla(); }; |
Closure Compiler
но this он не станет сжимать, все остальное сожмет пример: из этого: (function(){ function heh() { this._View = { bla: function() { alert("lala"); } } } function test() { this._View.bla(); this._View.bla(); this._View.bla(); this._View.bla(); this._View.bla(); this._View.bla(); } test.call(new heh()); })(); сделает это: (function(){ this.a.b(); this.a.b(); this.a.b(); this.a.b(); this.a.b(); this.a.b() }).call(new function(){ this.a={ b:function(){ alert("lala") } } });табуляции я сам расставил, а так в одну строку код будет запуск такой: java -jar compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS --js=test.js --js_output_file=test.min.js |
из такого кода:
(function(){ function heh() { this._View = { bla: function() { alert("lala"); } } } function test() { var self = this._View; self.bla(); self.bla(); self.bla(); self.bla(); self.bla(); self.bla(); } test.call(new heh()); })();делает такой: (function(){ var a=this.b; a.a(); a.a(); a.a(); a.a(); a.a(); a.a() }).call(new function(){ this.b={ a:function(){ alert("lala") } } }); |
подозреваю что gzip справиться с этим лучше
|
Цитата:
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 15:01. |