読み取り不可能な変数名を作成したため、その変数名を作成してコンパイルしないでください。
document.getElementById
の名前を変更することはできませんが、名前を変更できるdocument.getElementById
を返す関数を作成できます。
var getElementById = function(id){
return document.getElementById(id);
}
var getElementByIdClick = function(id, method_call){
return getElementById(id).onclick = method_call;
}
これは
それとも
function f(h){return document.getElementById(h)}function g(h,k){return f(h).onclick=k}
閉鎖コンパイラあなたは、できるだけ多くの変数を使用している、ではない一般的に良いアイデアが、クロージャがあるのトリックにコンパイルすることができとても良いので、最高のものを決めるでしょう。
コードを関数に移動するだけでなく、「角カッコ表記」のすべての「ドット表記」をスワップして、すべてのプロパティとメソッド名に変数を使用することができます。
これは極端な例です。
クローズコンパイラは、かっこを使用するかどうかを決定します。そうであれば、変数の名前が変更されます。
これで終わる可能性があります。
var a=document,b='getElementById',c='test',d='onclick',e=function(){};
a[b](c)[d]=e;
ドット表記に置き換えてすべての変数を削除することもできますが、少なくともオプションを指定している可能性があります。
document.getElementById('test').onclick=function(){} //method_call
document.getElementById('test')
はclosure compileためADVANCED_OPTIMIZATIONS
オプションは、機能の名前を変更しますが、それは機能を使用した回数を考慮に入れないこのa[b](c)
にコンパイルすることはできません。関数を完全に削除し、代わりにdocument.getElementById
を使用することがあります。
これを目で見るだけで、私は.jsのサイズを5〜20%減らすことができ、長い関数名にすることができます。 –
私は分かりません。ドキュメントやgetElementByIdとonclickを最小化することはできません。これらは標準のJavaScript名であり、名前を変更することはできません。最小限に抑えられるように見えるのは、「テスト」だけです。 –