Ich möchte die Objekteigenschaft im ADVANCED_OPTIMIZATIONS-Modus umbenennen.So benennen Sie die von Object.defineProperty erstellte Eigenschaft mit GCC um
-Code vor der Optimierung:
/**
* @constructor
*/
function Container() {
var items = [];
Object.defineProperty(this, 'items', {
set: function(value) {
items = value;
},
get: function() {
return items;
}
});
}
var container = new Container();
container.items = [1,2,3];
console.log(container.items);
Nach der Optimierung:
var b = new function() {
var a = [];
Object.defineProperty(this, "items", {set:function(c) {
a = c
}, get:function() {
return a
}})
};
b.e = [1, 2, 3];
console.log(b.e);
Closure Compiler nicht die Eigenschaftsnamen umbenannt - "Elemente".
Warum möchten Sie es umbenennen? – Oriol
Ich glaube nicht, dass irgendein Compiler jemals irgendeine Objekteigenschaft umbenennen würde. Es ist zu gefährlich, es automatisch zu machen. – Thomas
Ich bin schockiert: https://developers.google.com/closure/compiler/docs/api-tutorial3#propnames Meine Schlussfolgerungen: Verwenden Sie niemals ADVANCED_OPTIMIZATIONS mit gcc. Ich würde einen fremden Minifyzer wie uglifyjs verwenden – Thomas