はい私は同意する。高度なモードで Closure Compiler を使用するためだけに、渡されるデータを処理するすべてのコードobj["prop"]
の代わりに使用する必要があるのは見苦しいです。obj.prop
私が開発した 1 つのトリックは、マッピング オブジェクトを作成することです。
var mapping = {
field1: "field1",
field2: "field2"
:
};
このオブジェクトは、Closure Compiler によってコンパイルされた後、元のマングルされていない名前にマッピングされた (名前が変更された) マングルされたフィールド名を持ちます。
var a = {
b: "field1",
c: "field2"
:
};
次に、データを送信する前に、データ構造全体を複製する関数を介してデータを渡し、新しいオブジェクトを渡す前に、マングルされた各フィールド名を新しいオブジェクトのマングルされていないバージョンに変換します。
function cloneData(obj) {
var newobj = {};
foreach (var name in obj) {
if (!obj.hasOwnProperty(name)) continue;
var fullname = mapping[name] || name;
newobj[fullname] = obj[name];
}
return newobj;
}
受信したデータについては、逆の手順を実行します。