Сжатие 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, время: 12:22. |